在.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
任何评论为什么以及如何防止它?
答案 0 :(得分:1)
首先,您需要弄清楚那些丢失的库驻留在您的计算机上的位置。他们可能在/usr/local/lib64/
然后您可以选择以下3个选项之一:
将LD_LIBRARY_PATH
env变量设置为指向/usr/local/lib64/
更新全局库路径:
/usr/local/lib64/
添加到/etc/ld.so.conf
ldconfig
将/usr/local/lib64/
添加为共享库的库路径(或使用您的库的可执行文件)
-Wl,-rpath,/usr/local/lib64/
共享库或可执行文件。