一尘不染

摆脱“ gcc-/ usr / bin / ld:警告库未找到”

linux

链接期间出现以下警告:

/usr/bin/ld: warning: libxxx.so.6, needed by /a/b/c/libyyy.so, not found (try using -rpath or -rpath-link)

设置环境变量LD_LIBRARY_PATH = path_to_libxxx.so.6可使警告静音(添加-Lpath_to_libxxx.so.6无效)。

我有一个单独的编译服务器,仅在其中编译生成的二进制文件。二进制文件是在其他服务器上执行的,在那里二进制文件可以看到libxxx.so.6(用选中ldd executable)。

还有其他方法可以消除编译时的警告(我已经警告过几次了,这很烦人)?


阅读 258

收藏
2020-06-07

共1个答案

一尘不染

您需要添加相当于以下内容的动态库-L

-Wl,-rpath-link,/path/to/lib

这将导致链接器在非标准位置查找共享库,但这仅是为了验证链接是否正确。

如果您希望程序 在运行时 在该位置找到库,则可以使用类似的方法进行操作:

-Wl,-rpath,/path/to/lib

但是,如果没有此程序您的程序运行良好,则不需要它。

2020-06-07