为了安装MatConvNet,需要使用C++编译器。由于明威-W64 C++不能工作,所以应该使用VisualW64编译器.然而,我在这方面遇到了一些问题。虽然两者都已安装,但我无法使用它们。使用Mingw编译器,安装过程将失败,无法识别VC++。我安装了Visual 2017,但当发出以下命令时,它似乎无法识别。
>> mex.getCompilerConfigurations('C++','Selected')输出
ans =
CompilerConfiguration with properties:
Name: 'MinGW64 Compiler (C++)'
Manufacturer: 'GNU'
Language: 'C++'
Version: '4.x'
Location: '$MINGWROOT'
ShortName: 'mingw64-g++'
Priority: 'E'
Details: [1×1 mex.CompilerConfigurationDetails]
LinkerName: '$MINGWROOT\bin\g++'
LinkerVersion: ''
MexOpt: some path那么,问题是如何使MATLAB识别VC++为主要编译器?
附注:这两个编译器都驻留在MATLAB的mexopts目录中。

发布于 2019-10-16 17:11:50
选择一个记录方式编译器的C++是使用mex -setup c++。但是,如果由于某些原因(如OP的情况)而无法工作,则可以手动配置编译器:
在mex.getCompilerConfigurations('C++','Selected')的输出中,有一个MexOpt值。这指向包含mex将使用的选定编译器的信息的文件。
您可以将mexopts目录中的任何XML文件(在这里可以找到:$MATLABROOT/bin/<arch>/mexopts)复制并重命名,以匹配mex.getCompilerConfigurations('C++').MexOpt的值。
根据您的平台(我还没有看到Windows下的样子),您可能需要在编译器和相关目录的某些路径中进行编辑。
建议配置的C和C++编译器匹配。
发布于 2019-10-17 15:40:29
不幸的是,作为回答和评论提供的所有方法都不起作用。我刚发现这是MATLAB R2016b和R2017a中的一个bug。解决此问题的方法可以在下面的链接中找到。
Mathworks.com/support/bugreport/1487958
https://stackoverflow.com/questions/58417922
复制相似问题