如何设置MATLAB编译器

2020年12月7日20:48:46如何设置MATLAB编译器已关闭评论

如何设置MATLAB编译器

1.对MEX进行配置

(1)启动配置,在命令窗口输入:

>> mex –setup

系统会出现下面的提示:

Welcome to mex -setup. This utility will help you set up

a default compiler. For a list of supported compilers, see

http://www.mathworks.com/support/compilers/R2011a/win32.html

Please choose your compiler for building MEX-files:

Would you like mex to locate installed compilers [y]/n?

(2)启动MATLAB的自动定位系统:选择y,MEX将会自动搜索外部编译器的类型、版本以及所在路径。MATLAB会给出搜索的结果,也就是系统所安装的所有外部编译器,并提示输入相应的数字:

[1] Lcc-win32 C 2.4.1

[2] Microsoft Visual C++ 6.0

[3] Microsoft Visual C++ 2005 SP1

[4] Microsoft Visual C++ 2008 SP1

[5] Microsoft Visual C++ 2010

[6] Microsoft Visual C++ 2010 Express

[0] None

Compiler:

(3)确定选择的编译器类型:当用户直接按回车键,即是选择默认的编译器(Lcc)后,系统会提示用户确定选择:

Please verify your choices:

Compiler: Lcc-win32 C 2.4.1

Location: E:\MATLAB\sys\lcc

Are these correct [y]/n

(4)配置结束:如果上面的定位信息没有错误,可以输入y,确定选择,结束编译器的配置。

2.验证编译器的配置工作,编译MEX文件

(1)创建编译文件:前面已经对编译器进行了对应的配置,在本步骤中,需要验证这种配置工作是否正确。选择目录MATLAB根目录\R2012a\extern\examples\mex下的yprime.c文件,将其复制到当前路径中,该文件的具体代码如下:

#include <math.h>

#include “mex.h”

/* Input Arguments */

#define T_IN prhs[0]

#define Y_IN prhs[1]

/* Output Arguments */

#define YP_OUT plhs[0]

#if !defined(MAX)

#define MAX(A, B) ((A)> (B)? (A): (B))

#endif

/* Create a matrix for the return argument */

YP_OUT = mxCreateDoubleMatrix(m, n, mxREAL);

/* Assign pointers to the various parameters */

yp = mxGetPr(YP_OUT);

t = mxGetPr(T_IN);

y = mxGetPr(Y_IN);

/* Do the actual computations in a subroutine */

yprime(yp,t,y);

return;

(2)查看对应的M文件:上面的代码是MATLAB自带的MEX文件,对应的文件是yprime.m文件,具体代码如下:

function yp = yprime(t,y)

%YPRIME Define differential equations for restricted three-body problem.

% YP = YPRIME(T,Y)defines a system of ordinary differential

% equations representing the motion of a body of small mass

mu = 1/82.45;

mus = 1-mu;

r1 = norm([y(1)+mu, y(3)]); % Distance to the earth

r2 = norm([y(1)-mus, y(3)]); % Distance to the moon

yp(1)= y(2);

yp(2)= 2*y(4)+ y(1)- mus*(y(1)+mu)/r1^3 - mu*(y(1)-mus)/r2^3;

yp(3)= y(4);

yp(4)= -2*y(2)+ y(3)- mus*y(3)/r1^3 - mu*y(3)/r2^3;

% yp = yp’;

(3)直接运行MEX文件:在MATLAB的命令窗口输入:

>> mex yprime.c

>> yprime(1,1:4)

则显示结果为

ans =

2.0000 8.9685 4.0000 -1.0947

在上面代码中首先使用mex yprime.c,是将yprime.c生成yprime.dll文件,然后通过yprime(1,1:4)调用该yprime.dll文件并得到结果。

3.对其他编译器进行配置

在使用编译器前要先进行编译器的配置,在命令窗口输入:

>> mbuild-setup

用户需要注意,在函数mbuild和参数setup前的短横线“-”之间,需要有一个空格。显示的结果如下所示:

Welcome to mbuild -setup. This utility will help you set up

a default compiler. For a list of supported compilers, see

http://www.mathworks.com/support/compilers/R2011a/win32.html

Please choose your compiler for building standalone MATLAB applications:

Would you like mbuild to locate installed compilers [y]/n?

其含义是“请选择独立运行程序的编译器,是否需要mbuild查找已安装的编译器”,选择n后,命令窗口输出如下:

Select a compiler:

[1] Lcc-win32 C 2.4.1

[2] Microsoft Visual C++ 6.0

[3] Microsoft Visual C++ 2005 SP1

[4] Microsoft Visual C++ 2008 SP1

[5] Microsoft Visual C++ 2010

[6] Microsoft Visual C++ 2010 Express

[0] None

Compiler:

这里列出了MATLAB支持的通用编译器。此时显示了系统中已安装的编译器,Lcc-win32 C 2.4.1是MATLAB自带的C编译器,不能用来编译C++,选择1后命令窗口输出如下:

Please verify your choices:

Compiler: Lcc-win32 C 2.4.1

Location: E:\MATLAB\sys\lcc

Are these correct [y]/n?

选择y后,命令窗口输出如下:

Trying to update options file:

C:\Users\Administrator\AppData\Roaming\MathWorks\MATLAB\R2011a\compopts.bat

From template:    E:\MATLAB\bin\win32\mbuildopts\lcccompp.bat

Done . . .

至此,完成了编译器的安装和配置。按照上面的步骤完成的配置是具有永久性的,这些配置不会随着用户关闭程序而失效。这些配置工作又是可以修改的,用户可以随时根据版本情况,重新对编译器进行配置。

  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。