c++ - 在 MATLAB 中识别 VC++ 编译器

标签 c++ matlab compilation mex

为了安装 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 目录中。

enter image description here

最佳答案

documented way选择 C++ 编译器的方法是使用 mex -setup c++ .但是,如果由于某种原因这不起作用(OP 似乎就是这种情况),则可以手动配置编译器:

mex.getCompilerConfigurations('C++','Selected') 的输出中, 有一个 MexOpt值(value)。这指向包含所选编译器信息的文件,mex会用。

您可以获取 mexopts 中的任何 XML 文件目录(可在此处找到:$MATLABROOT/bin/<arch>/mexopts)并复制并重命名它以匹配 mex.getCompilerConfigurations('C++').MexOpt 的值.

根据您的平台(我还没有看到它在 Windows 下的样子),您可能需要在某些路径中编辑您的编译器和相关目录。

建议您配置的 C 和 C++ 编译器匹配。

关于c++ - 在 MATLAB 中识别 VC++ 编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58417922/

相关文章:

c++ - 在 MacOSX 上的 Qt 5.1 中,大小控制从状态栏中消失了

sorting - 使用 sortrows 更改列顺序的快速 MATLAB 方法

matlab - 4D "plot"的 2D 轮廓/切片?

matlab - 检查单元格内的成员

ms-access - 编译或反编译 MS Access MDB 文件有什么作用?

java - 使用 Javac 编译困难 - 问题

c++ - ArUco 姿态估计中的不稳定值

c++ - 如何将 std::bind 与标准库一起使用并保存返回类型?

c++ - 如何在允许子类方法调用的同时在 C++ 中实现抽象类?

c++ - 使用命令行编译 g++ 问题