我想在vs2008和matlab2007b.i上使用mex类型尝试下面的代码。
#include<iostream>
#include <matrix.h>
#include<mex.h>
using namespace std;
void hello(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
mexPrintf("Hello World!\n");
}
并收到此错误
'matrix.h': No such file or directory
我在下面的matlab commond win中写道
mex -setup
Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Lcc-win32 C 2.4.1 in C:\PROGRA~1\MATLAB\R2007b\sys\lcc
[0] None
Compiler:
那么使用mex类型该怎么办?
谢谢
答案 0 :(得分:0)
我看到两个问题:
<matrix.h>
,<matrix.h>
中包含<mex.h>
。尝试:include "mex.h"
代替<mex.h>
,然后移除include <matrix.h>
。mex -setup
找不到您的Microsoft Visual C ++ 2008编译器。 选择菜单应如下所示:
Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n? y
Select a compiler:
[1] Lcc-win32 C 2.4.1 in C:\PROGRA~1\MATLAB\R2007b\sys\lcc
[2] Microsoft Visual C++ 2008
[0] None
由于Visual 2008比Matlab R2007b更新,因此Matlab无法自动定位Visual 2008.
有一种方法可以手动添加它 请参阅此处:https://www.mathworks.com/matlabcentral/newsreader/view_thread/297616
请考虑:我无法完全验证以下说明,因为我没有Matlab R2007b:
分步说明:
C:\Program Files\MATALB\R2007b\bin\win64\mexopts
(假设您的版本在默认安装文件夹中为64位)。C:\Program Files\MATALB\R2007b\bin\win64\msbuildopts
mex -setup
,并验证Visual Studio 2008是否在列表中。