Matlab mex can';t编译我的c/c++;文件(windows) 我必须使用一个代码(它已经由别人编写),其中包含C文件、C++文件和MATLAB文件。我的Matlab版本是2013b 该代码已经在Linux上使用过很多次(可能是Ubuntu,但不确定),并且运行良好。 我在windows上工作,因此下载了microsoft SDK 7.1。然后我可以在Matlab中进行mex设置,并选择SDK7.1作为默认编译器。 然后,当我试图编译这些文件(比如“mex arrangeBL.c”)时,问题就出现了。我犯了如下错误:

Matlab mex can';t编译我的c/c++;文件(windows) 我必须使用一个代码(它已经由别人编写),其中包含C文件、C++文件和MATLAB文件。我的Matlab版本是2013b 该代码已经在Linux上使用过很多次(可能是Ubuntu,但不确定),并且运行良好。 我在windows上工作,因此下载了microsoft SDK 7.1。然后我可以在Matlab中进行mex设置,并选择SDK7.1作为默认编译器。 然后,当我试图编译这些文件(比如“mex arrangeBL.c”)时,问题就出现了。我犯了如下错误:,c++,c,matlab,mex,C++,C,Matlab,Mex,arrangeBL.c(15):错误C2143:语法错误:缺少“;”在“类型”之前 arrangeBL.c(19):错误C2065:“i”:未声明的标识符 我得到了大约一百个。它不是源于代码,因为它是在linux上使用的 如果我尝试编译C++,则错误不同: C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\intrin.h(26):致命错误>C1083:无法打开包含文件:“ammintrin.h”:没有此类文件或目录 我尝

arrangeBL.c(15):错误C2143:语法错误:缺少“;”在“类型”之前 arrangeBL.c(19):错误C2065:“i”:未声明的标识符

我得到了大约一百个。它不是源于代码,因为它是在linux上使用的

如果我尝试编译C++,则错误不同:

C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\intrin.h(26):致命错误>C1083:无法打开包含文件:“ammintrin.h”:没有此类文件或目录

我尝试了几件事,比如更新SDK 7.1,或者更改.Net framework的版本,但都没能成功


谢谢

可能生成的mex不是您试图编译的代码。您是否检查了代码以查看错误是否有意义?未声明的变量和缺少“;”它们通常很容易被发现。如果确实存在此问题,则很可能您没有使用正确的代码。请尝试vs2010的SP1:。此外,它可能与@ASantosRibeiro有关。这些错误没有任何意义,我试图运行一个Hello world程序,但我得到了如下错误:>>C:\program Files(x86)\Microsoft Visual Studio 10.0\VC\INCLUDE\cmath(19):错误C2061:语法错误:标识符“acosf”。“可能生成的mex不是您试图编译的代码。”所以它应该来自编译器。尝试上面的建议,并尝试从matlabroot/extern/examples中选择一个示例。一旦你把这项工作传递给你的代码。只是好奇,这个文件做什么
ammintrin.h
包含使用SSE4向量机指令的内部函数。如果在函数中使用这些函数,将出现可移植性问题。首先,您需要一个支持这些指令的CPU,其次,一些编译器需要传递标志以支持这些指令。例如,gcc中的AVX指令需要
-mavx
标志,还需要支持这些指令的编译器版本。