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 function main': 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库函数

如何给matlab coder装license

Capybara-webkit、rspec 集成规范和 xvfb:webkit_server:致命 IO 错误:客户端被杀死

将 GCP 订阅者与 Spring Boot 集成会导致内存致命错误

致命错误:集成 firestore 后在 Flutter iOS 构建中找不到“openssl/x509.h”文件