编译共享库的问题

时间:2015-04-02 17:35:59

标签: c++ linux compilation

我尝试编译一些代码,这些代码在ubuntu 14.04 LTS下的main-pc上运行。现在我想用一个带有linux的小板(Zedboard)来控制一个EnOceanreceiver 我在C ++中使用Linaro 12.11和programm。

如果我编译,则没有错误。但如果我想启动该程序来: 加载共享库时出错:libEOLink.so.0:无法打开共享对象文件:没有这样的文件或目录

我的Makefile看起来像:

all: EnOcean.cpp
   g++ -I/homelinaro/EOLink EnOcean.cpp -o EnOcean -L/usr/local/lib -lEOLink

我在/ usr / local / lib下找到了数据,但如果有或没有,它就无济于事。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如果可以在/ usr / local / lib中找到libEOLink.so.0,则不应该将其添加到LD_LIBRARY_PATH,因为这应该已经是路径的一部分。图书馆可能依赖于未找到的其他图书馆。要确定是否是这种情况,请运行:

ldd /usr/local/lib/libEOLink.so.0

如果找不到任何依赖项,将会报告。

我还假设您为目标系统组合了libEOLink。