我试图从.cpp文件调用matlab。我用下面的命令来编译engdemo.cpp,其中包括"engine.h"

g++ engdemo.cpp -I/usr/local/matlabR2010a/extern/include -L/usr/local/matlabR2010a/extern/lib -o engdemo

我得到的是以下内容:
engdemo.cpp:(.text+0xdb): undefined reference to `engOpen'
engdemo.cpp:(.text+0x12d): undefined reference to `mxCreateDoubleMatrix'
engdemo.cpp:(.text+0x143): undefined reference to `mxGetPr'
engdemo.cpp:(.text+0x175): undefined reference to `engPutVariable'
engdemo.cpp:(.text+0x189): undefined reference to `engEvalString'

...

collect2:ld返回1退出状态

我猜可能是某些链接问题,但我不确定。请帮帮我。提前谢谢了!

最佳答案

跟进what @Kurt S said,您需要包括库。这些是您需要的常见文件:libeng.lib libmat.lib libmx.lib,但您可能需要其他文件。

因此,您要添加链接选项-llibeng -llibmat -llibmx
但是您可能也需要其他人。

关于c++ - 从C++调用Matlab,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7757613/

10-11 06:25