ajw*_*ood 3 ubuntu dynamic-linking
我有我的程序动态链接的同一个库的多个版本.有时候我想更改使用的版本.
我一直在读新版本的Ubuntu不再支持LD_LIBRARY_PATH安全性原因.我可以添加路径/etc/ld.so.conf并运行ldconfig但我不会总是拥有系统的root权限.
任何人都知道如何更改库搜索路径,普通用户可以做出什么?假设经常发生更新配置文件是最后的手段.
编辑:这是我正在测试的方式,我希望看到的内容等等:我运行ldd一个程序然后看看libfoo.so => /some/path/to/lib/libfoo.so.我预先添加/path/to/different/version/lib(包含名为libfoo.so的文件)LD_LIBRARY_PATH并重新运行ldd.libfoo.so的路径与我以前看到的路径相同libfoo.so => /path/to/different/version/lib/libfoo.so.
谢谢,
安德鲁
您可以使用patchelf更改RPATH任何可执行文件的(库搜索路径).它是一个很酷的实用程序,不需要特殊的权限来运行.要设置一个程序,先搜索/opt/my-libs/lib,然后/foo/lib,只是这样做:
% patchelf --set-rpath /opt/my-libs/lib:/foo/lib program
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3195 次 |
| 最近记录: |