在 Eclipse (C++) for Linux 中链接到 matlab 库

Posted

技术标签:

【中文标题】在 Eclipse (C++) for Linux 中链接到 matlab 库【英文标题】:Linking to matlab libraries in Eclipse (C++) for Linux 【发布时间】:2014-06-19 13:51:39 【问题描述】:

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

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

g++ -Lpath 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。

如何调试这个问题?

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于在 Eclipse (C++) for Linux 中链接到 matlab 库的主要内容,如果未能解决你的问题,请参考以下文章

尝试使用 Eclipse for C++ 查看变量内容时,gdb (9.2) 失败

Eclipse for C++ 中的 Visual Studio 工具链

windows eclipse c++怎么交叉编译linux

从事UNIX/LInux服务器编程最方便的代码编译工具------(eclipse for c/c++)(FileZilla)(Secure CRT) 这三种一定要一起使用 之3

在 Linux (eclipse) 中使用 C++ 库

在 Eclipse、Red Hat Linux 中运行 c++ 项目时出现问题