我的代码在C代码中生成了一个simulink模型,并围绕它编写了一个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),也找不到这些。
如何调试此问题?
答案 0 :(得分:0)
我不确定它是否是您问题的根源,但您是否尝试从在Linux上运行的Matlab生成模型?我没有在Linux上使用Matlab,但它可能不会在Linux和Windows版本之间生成相同的代码。这可以解释为什么你会遇到链接错误。