我有依赖于链接到 libboost 1.67 的库的程序,该库安装在系统中。当我启动它时,我有一个libboost_system.so.1.58
不存在的错误。LD_PRELOAD
并且LD_LIBRARY_PATH
未设置。
lddtree
执行不会将此库显示为依赖项,但ldd
会显示。
如何从需要库的位置进行跟踪?
我有依赖于链接到 libboost 1.67 的库的程序,该库安装在系统中。当我启动它时,我有一个libboost_system.so.1.58
不存在的错误。LD_PRELOAD
并且LD_LIBRARY_PATH
未设置。
lddtree
执行不会将此库显示为依赖项,但ldd
会显示。
如何从需要库的位置进行跟踪?
如果在 GNU 系统上,请尝试使用以下命令运行您的应用程序:
有关
LD_DEBUG=help
更多选项,请参阅 或man ld.so
。如果程序使用 dlopen() 手动加载 libboost_system,您可能能够使用ltrace找到它在哪里执行该操作以查看它是否正在调用 dlopen(),也许 gdb 在调用 dlopen() 时设置断点,然后生成堆栈回溯。(另见latrace。)