c ++共享对象依赖项

时间:2015-08-28 18:16:43

标签: c++ ldd

在.so编译之后,ldd命令返回3个未知的依赖项。 libboost_regex-gcc41-mt-1_35.so.1.35.0 => not found libsqlapi.so => not found libsqlapiu.so => not found 虽然它们在makefile中指定并出现在机器上(RH 64位)。 LD_LIBRARY_PATH未设置(需要一个解决方案而不更改它) libMakeMeHappy_so_LDADD = -L/usr/local/lib64/ -lboost_regex-gcc41-mt -lsqlapi -lsqlapiu 任何评论为什么以及如何防止它?

1 个答案:

答案 0 :(得分:1)

首先,您需要弄清楚那些丢失的库驻留在您的计算机上的位置。他们可能在/usr/local/lib64/

然后您可以选择以下3个选项之一:

  1. LD_LIBRARY_PATH env变量设置为指向/usr/local/lib64/

  2. 更新全局库路径:

    • /usr/local/lib64/添加到/etc/ld.so.conf
    • 运行ldconfig
  3. /usr/local/lib64/添加为共享库的库路径(或使用您的库的可执行文件)

    • 链接时添加链接器标志-Wl,-rpath,/usr/local/lib64/ 共享库或可执行文件。