【发布时间】:2019-10-16 16:32:11
【问题描述】:
为了安装 MatConvNet,需要使用 C++ 编译器。由于 MingW-w64 C++ 不起作用,应该使用 Visual C++ 编译器。但是,我遇到了一些问题。 尽管它们都已安装,但我无法使用它们。 使用 Mingw 编译器,安装过程会失败,无法识别 VC++。我安装了Visual Studio 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 目录中。
【问题讨论】:
-
您是否按照文档中的说明尝试过
mex -setup?它应该允许您选择编译器。另外,您使用哪个版本的 MATLAB?每个版本只能识别一组有限的 MSVC 版本。见这里:mathworks.com/help/matlab/matlab_external/… -
使用 mex -setup 命令将引发以下错误 '' Error using mex No supported compiler or SDK was found.您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译器。有关更多选项,请访问 mathworks.com/support/compilers/R2017a。'' 但是,使用 MingW 的 setenv() 一切正常。问题是如何为 VC++ 做到这一点。
-
你安装编译器了吗?上次安装时,Visual Studio的默认安装集没有包含C/C++编译器。
-
确保检查@Daniel 提到的内容。 MVS 默认不安装 C++ 编译器!因此,除非您在安装过程中明确选择它,否则您可能没有安装 MVS。不,编译器不驻留在
mexopts目录中,这纯粹是带有编译器选项的xml文件 -
@Daniel,我安装了编译器,但它不起作用。
标签: c++ matlab compilation mex