为什么链接器在linux中用于编译的路径中搜索库

Why linker searches for a library in the path used for compiling in linux

本文关键字:路径 搜索 编译 用于 linux 为什么 链接      更新时间:2023-10-16

我正在构建一个带有选项的共享库-L/my/path/-lxxx. "所以"

现在我正在使用dlopen动态链接这个库到我的应用程序

pvHandle = dlopen (pszLibName, RTLD_LAZY | RTLD_GLOBAL);

但是当我执行它是显示一个错误消息/我的//libxxx路径。

不能打开共享的目标文件

libxxx。so在/usr/local/lib中可用,我将此路径附加到LD_LIBRARY_PATH

你知道我做错了什么吗?提前感谢

执行ldconfig命令。请参阅ldconfig命令的手册页,您可以了解它。

需要添加/etc/ld.so.conf文件的路径。

给出完整路径,如

dlopen("/some/path/to/lib.so",  RTLD_LAZY | RTLD_GLOBAL);