我有一个使用 libtool 构建的库,它安装到包的库目录中,/usr/local/lib/myprog/libmylib.so
. 我正在使用 libltdl 在我的代码中动态加载库。当我尝试在一台机器上加载这个库时,它工作得很好。另一方面,使用相同的构建和安装在同一位置的库,我收到“找不到文件”错误。
如果我lt_dlforeachfile
之前直接调用lt_dlopenext
(我用它来加载库),那么我可以通过打印出文件名来查看我需要的库已在搜索路径中找到。但紧接着,加载它失败并出现“找不到文件”错误。有什么建议么?
更新
我尝试切换到使用dlopen
并明确指定库的绝对路径。这仍然适用于某些系统,而不适用于其他系统。