Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
认识VC++;MATLAB中的编译器 < >为了安装MatConvNet,需要使用C++编译器。由于WiMW-W64 C++不工作,所以应该使用Visual C++编译器。然而,我在这方面遇到了一些问题。 虽然它们都已安装,但我无法使用它们。 使用Mingw编译器,安装过程将失败,无法识别VC++。我安装了Visual Studio 2017,但当发出以下命令时,似乎无法识别 >> mex.getCompilerConfigurations('C++','Selected')_C++_Matlab_Compilation_Mex - Fatal编程技术网

认识VC++;MATLAB中的编译器 < >为了安装MatConvNet,需要使用C++编译器。由于WiMW-W64 C++不工作,所以应该使用Visual C++编译器。然而,我在这方面遇到了一些问题。 虽然它们都已安装,但我无法使用它们。 使用Mingw编译器,安装过程将失败,无法识别VC++。我安装了Visual Studio 2017,但当发出以下命令时,似乎无法识别 >> mex.getCompilerConfigurations('C++','Selected')

认识VC++;MATLAB中的编译器 < >为了安装MatConvNet,需要使用C++编译器。由于WiMW-W64 C++不工作,所以应该使用Visual C++编译器。然而,我在这方面遇到了一些问题。 虽然它们都已安装,但我无法使用它们。 使用Mingw编译器,安装过程将失败,无法识别VC++。我安装了Visual Studio 2017,但当发出以下命令时,似乎无法识别 >> mex.getCompilerConfigurations('C++','Selected'),c++,matlab,compilation,mex,C++,Matlab,Compilation,Mex,输出: ans = CompilerConfiguration with properties: Name: 'MinGW64 Compiler (C++)' Manufacturer: 'GNU' Language: 'C++' Version: '4.x' Location: '$MINGWROOT' ShortName: 'mingw64-g++' Priority: 'E' Deta

输出

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目录中

< C++ >编译器的选择是使用<代码> MeX—设置C++ > /COD>。但是,如果由于某种原因这不起作用(OP的情况似乎就是这样),则可以手动配置编译器:

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

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

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

<> P>推荐配置C++和C++编译器。< / P> < P> C++编译器的选择是使用<代码> MeX -设置C++ >代码>。但是,如果由于某种原因这不起作用(OP的情况似乎就是这样),则可以手动配置编译器:

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

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

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


<> P>推荐配置C和C++编译器匹配。

不幸的是,没有提供答案和注释的方法都不起作用。我刚刚发现这是MatlabR2016B和R2017a中的一个bug。 此问题的解决方法可在以下链接中找到


不幸的是,作为答案和注释提供的方法没有一个不起作用。我刚刚发现这是MatlabR2016B和R2017a中的一个bug。 此问题的解决方法可在以下链接中找到


您是否按照文档中的说明尝试了mex-设置?它应该允许您选择一个编译器。另外,您使用哪个版本的MATLAB?每个版本只能识别一组有限的MSVC版本。请参见此处:使用mex-setup命令将引发以下错误“”使用mex时出错未找到受支持的编译器或SDK。您可以安装免费提供的MinGW-w64 C/C++编译器;请参阅安装MinGW-w64编译器。有关更多选项,请访问。“”但是,使用setenv()进行MingW一切正常。问题是如何在VC++中这样做。你安装了编译器吗?上次安装时,VisualStudio的默认安装集不包含C/C++编译器。请确保检查丹尼尔提到的内容。MVS默认不安装C++编译器!因此,除非您在安装过程中明确选择它,否则可能没有安装MVS。不,编译器并不驻留在
mexopts
目录中,也就是说,编译器的纯
xml
文件options@Daniel,我安装了编译器,但它不工作。您是否按照文档中的说明尝试了
mex-setup
?它应该允许您选择一个编译器。另外,您使用哪个版本的MATLAB?每个版本只能识别一组有限的MSVC版本。请参见此处:使用mex-setup命令将引发以下错误“”使用mex时出错未找到受支持的编译器或SDK。您可以安装免费提供的MinGW-w64 C/C++编译器;请参阅安装MinGW-w64编译器。有关更多选项,请访问。“”但是,使用setenv()进行MingW一切正常。问题是如何在VC++中这样做。你安装了编译器吗?上次安装时,VisualStudio的默认安装集不包含C/C++编译器。请确保检查丹尼尔提到的内容。MVS默认不安装C++编译器!因此,除非您在安装过程中明确选择它,否则可能没有安装MVS。不,编译器并不驻留在
mexopts
目录中,也就是说,编译器的纯
xml
文件options@Daniel,我安装了编译器,但它不起作用。重命名技巧起作用,但我仍然收到以前的错误:“'未找到支持的编译器或SDK'。进一步,mex-setup命令不再工作,它会产生前面提到的错误。@dtr43:Ah,这就是原因。你能把这个作为回答吗?这可能会帮助其他遇到同样问题的人。谢谢你无价的帮助和建议。当然,我会把它寄出去的!重命名技巧奏效了,但我仍然遇到了前面的错误:“'没有找到支持的编译器或SDK'。此外,mex-setup命令不再起作用,它会产生前面提到的错误。@dtr43:Ah,这就解释了它。你能把这个作为回答吗?这可能会帮助其他遇到同样问题的人。谢谢你无价的帮助和建议。当然,我会把它寄出去的!