我想用MEX在MATLAB上编译C\C++文件。我先试了mex -setup,然后是mex xyz.cpp。但我还是会犯错误
E:\MATLAB~1\BIN\MEX.PL:错误:编译“xyz.cpp”失败。
键入此命令时
mex -v mexDiscreteFlow.cpp BPFlow.cpp Stochastic.cpp我得到以下输出
这是mex,1984-2007年版权所有的MathWorks公司。 在C:\Users\abc\AppData\Roaming\MathWorks\MATLAB\R2008b中找到的->默认选项文件名 C:\Users\abc\AppData\Roaming\MathWorks\MATLAB\R2008b\mexopts.bat选项文件= -> MATLAB = E:\MATLAB~1 ->编译器= lcc ->编译器标志: COMPFLAGS = -c -Zp8 -I"E:\MATLAB~1\sys\lcc\include“-DMATLAB_MEX_FILE -noregistrylookup OPTIMFLAGS = -DNDEBUG DEBUGFLAGS = -g4 论据= 名称开关= -Fo ->预链接命令= ->链接器= lcclnk ->链接指令: LINKFLAGS = -tmpdir“-dll -L"E:\MATLAB~1\sys\lcc\lib”-libpath“E:\MATLAB~1\extern\lib\lib 32\lcc”"C:\USERS\abc\APPDATA\LOCAL\TEMP\MEX_JT~1\templib2.obj“” LINKDEBUGFLAGS LINKFLAGSPOST = libmx.lib libmex.lib libmat.lib 名称指令= -o "mexDiscreteFlow.mexw32“ 文件链接指令= 利布。链接指令= Rsp文件指示器=@ ->资源编译器= lrc -I“E:\MATLAB~1\sys\lcc\包括”-noregistrylookup -fo"mexversion.res“ -FoC:\USERS\abc\APPDATA\LOCAL\TEMP\MEX_JT~1\mexDiscreteFlow.obj资源链接器= -> lcc -c -Zp8 -I“E:\MATLAB~1\sys\ lcc \包括”-DMATLAB_MEX_FILE -noregistrylookup -IE:\MATLAB~1\extern\include -IE:\MATLAB~1\simulink\include -DNDEBUG -DMX_COMPAT_32 lcc预处理器错误:C:\USERS\abc\DOWNLO~1\发布C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\Image.h:7 C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp:3 \RELEASE\MEX\ImageProcessing.h:7找不到\RELEASE\MEX\ImageProcessing.h:7文件 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 7语法错误;找到
<' expecting;‘ 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 7跳过<'Error C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 7 syntax error; foundT‘期待;'Error C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 7 syntax error; found>‘期待;'’Error C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 7 skipping>‘ 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 8语法错误;找到*' expecting)‘ 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 8跳过*'pBuffer‘ 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 10未声明标识符pBuffer'Error C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 11 undeclared identifier删除‘ 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 11非法表达式 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 11语法错误;找到pBuffer' expecting]‘ 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 11类型错误:预期指针 警告C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 11语句无效 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 11语法错误;找到pBuffer' expecting;‘ 警告C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 11语句无效 警告C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 11在定义前可能使用删除 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 15语法错误;找到<' expecting;‘ 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 15跳过<'Error C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 15 syntax error; foundT‘期待;'Error C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 15 syntax error; found>‘期待;'’Error C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 15 skipping>‘ 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 16语法错误;找到*' expecting)‘ 错误C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\mexDiscreteFlow.cpp: C:\USERS\abc\DOWNLO~1\RELEASE\RELEASE\MEX\project.h: 16太多的错误E:\MATLAB~1\BIN\MEX.PL: E:\MATLAB~1\BIN\MEX.PL:mexDiscreteFlow.cpp的编译失败。 ???在213时使用==> mex时出错 无法成功完成。
有人能给我一些建议吗?
谢谢
发布于 2013-04-30 01:16:44
lcc是Matlab附带的C编译器,但您正在尝试编译C++文件。您需要再次运行mex -setup并选择一个C++编译器(但是如果您还没有C++编译器,那么首先要得到一个C++编译器)。
https://stackoverflow.com/questions/11411915
复制相似问题