在MATLAB2017a中使用mex找不到编译器的问题

安装环境:win7系统,MATLAB2017a

由于原代码是在Linux上实现的MATLAB和C++混编,所以在MATLAB中使用make函数,总是提示“找不到编译器,请安装MinGW-w64编译器”,于是为MATLAB安装MinGW-w64编译器,在安装时使用的是软件百度网盘链接:点击打开链接 密码:jexj,在安装时请直接安装在c盘目录下如果放在c:\Program Files等二级目录下在后边的运行过程中会报错,提示“c:\Program Files不是可执行代码”。安装完成后

1.添加环境变量:变量名:MW_MINGW64_LOC,值:编译器的安装路径

2.安装Gnumex,百度网盘链接:点击打开链接 密码:qo8h,安装完成后在MATLAB中点击添加路径,添加Gnumex的安装路径。

3.将MATLAB的运行路径改为Gnumex的安装路径,在MATLAB的命令窗口输入命令:gnumex,之后会弹出一个窗口,如下:


将MinGW root directory设置为MinGW-w64编译器的安装路径,path to gfortran的路径也设置为编译器安装路径,path to gnumex处的路径为gnumex的安装路径,之后点击make options file按钮。如果MinGW root directory的安装路径如上图含有C:\Program Files,会报错。所以安装编译器时一定注意安装路径。

4.最后在运行自己的make函数(里面含有mex -outdir bin/ -v CXXOPTIMFLAGS='$CXXOPTIMFLAGS -Ofast -fopenmp' LDOPTIMFLAGS='$LDOPTIMFLAGS -fopenmp' sources/c/PsycoSuperRes_interface_mex.cpp sources/c/PsycoSuperRes.cpp sources/c/Psyco.cpp命令)就不会报错了。




在安装过程中安装了各种Windows Microsoft SDK 7.1但是并不能解决找不到编译器的问题,之后又安装了TDM-GCC-64,可以找到编译器,但是在运行自己的Make函数时,总是报“ error: libgomp.spec: No such file or directory”的错误,查阅了各种资料,只看到在Linux下的一些错误说明,但是在Windows下貌似大家都没有这种错误,可能是我不理解tdm gcc和MinGW -w64两种编译器的区别吧,不过最后终于实现了曲线救国,重新安装了mingw-w64编译器,最后运行make函数通过。在此记录一下自己遇到的错误,有不当之处请大家指正。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
matlab2012b windows版在关联vs2012编译器的时候,以及无法编译dll。 原因就是matlab默认的编译器的目录配置,include目录以及lib目录配置错误造成的。 如果你的vs目录不是默认的,或者windows是32位版本,或者vs版本不是2012,或者你的mt.exe目录不在Windows kits下,那么有可能需要修改附件里面的相关目录的设置(其实就是mbuild配置cl.exe和mt.exe的目录位置,以及mex配置的include和lib的所需目录),mbuild是编译exe的,mex是编译dll的。我的另一个资源仅处理mbuild配置,未处理mex的配置,所以不能成功编译mex。如果你已经下载过我的另一个资源,请替换mexopts目录下的msvc110opts.bat文件的30和31行代码(而不必下载这个资源): set INCLUDE=%VCINSTALLDIR%\INCLUDE;%VCINSTALLDIR%\ATLMFC\INCLUDE;%LINKERDIR%\include\um;%LINKERDIR%\include\shared;%LINKERDIR%\include\WinRT;%INCLUDE% set LIB=%VCINSTALLDIR%\LIB\amd64;%VCINSTALLDIR%\ATLMFC\LIB\amd64;%LINKERDIR%\lib\win8\um\x64;%MATLAB%\extern\lib\win64;%LIB% 附件里有一个word文件,是我修改的注释信息,如果需要手动修改,可以当做帮助来用. mbuild设置方法: 1 把附件相关的4个文件添加到matlab/bin/win64下面的2个相关目录 2 在matlab 里面运行 mbuild -setup, 然后选 y, 再选择2012的那个项目,再选y 3 mbuild应该成功了,此时可以编译为exe文件。 mex设置方法: 1 在matlab 里面运行 mex -setup, 然后选 y, 再选择2012的那个项目,再选y 2 mbuild应该成功了,此时可以编译为dll文件。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值