MATLAB 代码和 C/C++ 集成中的致命错误
Posted
技术标签:
【中文标题】MATLAB 代码和 C/C++ 集成中的致命错误【英文标题】:fatal error in integration of MATLAB code and C/C++ 【发布时间】:2013-06-06 09:46:20 【问题描述】:我使用了来自 mathworks 网站的示例代码,通过a link! 将 MATLAB 代码与 C/C++ 集成!
正如您在代码中看到的,头文件如下:
#include "engine.h"
在 Linux (Ubuntu) 中,我运行:
g++ engdemo.cpp -o mycpp
命令创建可执行程序,但出现以下致命错误:
engdemo.cpp:14:20:致命错误:engine.h:没有这样的文件或目录,编译终止。
我该如何解决这个致命错误?
【问题讨论】:
当前目录下是否存在engine.h
文件?
@BlueBit:你需要告诉编译器在哪里可以找到头文件。您还需要链接到所需的库。文档解释了这一点:mathworks.com/help/matlab/matlab_external/…,mathworks.com/support/solutions/en/data/1-1BSZR
【参考方案1】:
看看
[matlabroot '/extern/include']
如果你在那里看到engine.h
,请运行
g++ -I../../include engdemo.cpp -o mycpp
(假设您从 [matlabroot '/extern/examples/eng_mat/']
运行)
【讨论】:
运行时出现错误:g++ -I /usr/local/MATLAB/R2011b/extern/include engdemo.cpp -o mycpp : /tmp/ccNSRT82.o: In functionmain': engdemo.cpp:(.text+0x4c): undefined reference to
engOpen ' engdemo.cpp:(.text+0xa7): 未定义引用mxCreateDoubleMatrix' engdemo.cpp:(.text+0xb7): undefined reference to
mxGetPr' engdemo.cpp:(.text+0x141): 未定义引用engPutVariable' engdemo.cpp:(.text+0x155): undefined reference to
engEvalString' engdemo.cpp:(.text+0x169):未定义对engEvalString' engdemo.cpp:(.text+0x17d): undefined reference to
engEvalString' 的引用...以上是关于MATLAB 代码和 C/C++ 集成中的致命错误的主要内容,如果未能解决你的问题,请参考以下文章
Matlab与C/C++混合编程之Matlab调用OpenCV库函数
Matlab与C/C++混合编程之Matlab调用OpenCV库函数
Capybara-webkit、rspec 集成规范和 xvfb:webkit_server:致命 IO 错误:客户端被杀死