MATLAB生成COM组件未找到编译器解决方案

MATLAB生成COM组件未找到编译器解决方案

在使用MATLAB与其他语言混合编程时,想利用MATLAB生成COM组件供其他语言直接调用,却遇到找不到编译器导致生成失败。在网上找了好多解决方案均失败,最终解决,特此记录分享一下,以供有类似问题朋友解决。
最初问题界面如下:
在这里插入图片描述
在按提示下载了MinGW-w64 GCC编译器,配置环境后,也显示安装成功,在MATLAB里也能调用,如图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但生成COM组件仍失败。

解决方案:
经多次试错,有以下2方案,很简单:
1、MATLAB与编译器的安装顺序有很大的关系,若后安装编译器,虽然能调用,会导致MATLAB生成COM时找不到编译器的注册表文件。也可修改系统安装里的头文件解决,详情自找,思路为更新MATLLAB bin\win64下mexopts文件。
2、此处直接建议装Visual Studio,MATLAB调用方便,按官方提示装GCC容易出问题。本人用的MATLAB2018和VS2017。
最终打包成功如下:
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
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文件。
### 回答1: 在运行"mex -setup"命令时,如果出现"未找到支持的编译器"的错误提示,可能是以下原因导致的: 1. 安装了不受支持的编译器Matlab在某些版本中只支持特定的编译器。如果您安装了非官方支持的编译器,则可能无法使用mex命令进行编译。解决办法是安装Matlab官方支持的编译器版本。 2. 缺少编译器:mex命令需要依赖于编译器来将C或C++源代码编译为可执行文件。如果您尚未安装任何编译器,或者使用的编译器没有被Matlab识别出来,会出现此错误。您可以通过安装Matlab支持的编译器或配置Matlab将已安装的编译器识别为默认编译器来解决此问题。 3. 设置错误:有时候,即使已正确安装了支持的编译器,但由于设置错误,Matlab可能无法识别该编译器。您可以通过运行"mex -setup"命令并选择正确的编译器路径来解决此问题。 综上所述,如果在运行"mex -setup"命令时遇到"未找到支持的编译器"的错误提示,您可以尝试以下解决方法:安装Matlab支持的编译器版本、安装编译器或配置Matlab将已安装的编译器识别为默认编译器。 ### 回答2: 在Matlab 2018b中,执行"mex -setup"命令时出现"未找到支持的编译器"的错误提示,可能有几个原因导致这个问题。 首先,可能是因为您没有正确安装支持的编译器。在Matlab中使用mex命令需要有支持的编译器,例如Microsoft Visual C++或者MinGW等。您可以检查您的计算机上是否已经安装了这些编译器,并且将它们的路径添加到系统的环境变量中。 另一个可能的原因是您已经安装了支持的编译器,但是Matlab无法正确识别它们。这种情况下,您可以尝试手动配置编译器。首先,找到您安装的编译器的安装路径。然后,打开Matlab并执行"mex -setup"命令。在弹出的对话框中,选择"使用现有的编译器"选项,并在"编译器位置"字段中输入您编译器的安装路径。然后,按照提示完成设置。 最后,如果您仍然无法找到支持的编译器,可能是因为您的Matlab版本与编译器不兼容。某些版本的Matlab可能需要特定版本的编译器才能正常工作。在这种情况下,您可以尝试升级Matlab或者更换支持的编译器。您可以在Matlab的官方网站上查找有关兼容性的更详细信息。 总之,要解决"mex -setup 未找到支持的编译器"的问题,您可以检查编译器的安装情况、手动配置编译器或者升级Matlab版本,并确保Matlab编译器的兼容性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值