c++ - 在适用于 Linux 的 Eclipse (C++) 中链接到 matlab 库

标签 c++ linux eclipse matlab g++

我已经将 simulink 模型生成为 C 代码,并围绕它编写了一个 C++ 框架。它在windows上运行得很好,但现在我想在linux环境下编译它,以便能够在linux集群上运行它(不使用windows模拟器)。我已在集群节点上的 Eclipse CDT 中对其进行了设置,并且已尽我所知添加了所有链接器设置,但当我尝试编译时出现链接错误。

最终的编译器命令在表单中(libmex.so matlab 库的示例)

g++ -L{path to Matlab/bin/glnxa64} -o VCTSClient -lmex

但是有大量链接的库,所以我无法粘贴整个内容。

大多数库都能正常工作,但有些库却不能。完整的错误消息如下:

/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -lhdf5_hl
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -ltbb
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -ltbbmalloc
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -licuuc
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -lhdf5
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -licudata
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -licuil8n
/usr/lib64/gcc/x86_64-suse-linux/.../bin/ld: cannot find -licuio

出于某种原因,即使我成功(据我所知)链接到同一目录中的其他库 - 例如上面提到的 libmex.so,也找不到这些库。

如何调试此问题?

最佳答案

我不确定这是否是您问题的根源,但您是否尝试过从在 Linux 上运行的 Matlab 生成模型?我没有在 Linux 上使用 Matlab,但它可能不会在 Linux 和 Windows 版本之间生成相同的代码。这可以解释为什么您会遇到链接错误。

关于c++ - 在适用于 Linux 的 Eclipse (C++) 中链接到 matlab 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24308282/

相关文章:

c# - 如何捕捉特殊的关键事件?

c++ - Memmove 使一个地方成为垃圾?

c++ - errno.h 的问题

c++ - 如何在C++中获取运行函数的时间

php - 为什么 Aptana/Eclipse 必须有 "build"PHP 项目?

c++ - 如何设置/选择应该包含什么版本的boost?

eclipse - 到处关闭 Eclipse 格式化程序

c - 一个线程结束进程

c++ - 访问 ELF 中的特定部分

c - 使用其内核命名空间 PID 从全局范围内终止进程