linux - 摆脱 "gcc -/usr/bin/ld: warning lib not found"

标签 linux gcc compilation

我在链接期间有以下警告:

/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 检查)。

有没有其他方法可以消除编译时的警告(我有好几次了,很烦人)?

最佳答案

你需要添加等同于-L的动态库:

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

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

如果您希望程序在运行时在那个位置找到库,那么有一个类似的选项可以做到这一点:

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

但是,如果您的程序在没有它的情况下运行良好,那么您就不需要它。

关于linux - 摆脱 "gcc -/usr/bin/ld: warning lib not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13507600/

相关文章:

c - 如何避免使用gcc在c中包装输入数据?

node.js - Node.js 10 的 TypeScript tsconfig 设置?

C错误: assignment to expression with array type

linux - AM335x - 用于 linux 内核的 i2c 从机

c - 独立的 CPU 和 IO 时间

c - opendir() 系统调用后指向 char 的指针发生变化

c - 未定义对 `initscr' Ncurses 的引用

c++ - gSoap 的 gSoapWinhttp 插件是否支持 linux

c++ - 错误 : use of deleted function bool regex_match with gcc 5. 2.0

c++ - 如何使用带有行号信息的 gcc 获取 C++ 的堆栈跟踪?