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

时间:2014-05-31 05:53:15

标签: c++ c linux linker dlopen

我正在构建一个带选项的共享库     “-L / my / path / -lxxx.so”

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

pvHandle = dlopen (pszLibName, RTLD_LAZY | RTLD_GLOBAL);

但是当我执行它时会显示错误消息      /my/path/libxxx.so:无法打开共享对象文件:没有这样的文件或目录

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

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

1 个答案:

答案 0 :(得分:0)

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

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

OR

给出完整的路径

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