修改可执行文件的链接路径

时间:2015-03-06 17:11:50

标签: linux unix shared-libraries ldd

ldd实用程序显示二进制可执行文件所依赖的共享对象文件,并显示文件系统上该二进制可执行文件的路径。

是否可以在现有可执行文件上修改此路径?例如,假设我有一个二进制" foo.so",我说:

    libssl.so.0.9.8 => /opt/lib64/libssl.so.0.9.8

如果我将此.so文件部署到在指定路径上 lbssl.so.0.9.8的计算机上,我在使用时会遇到链接器错误foo.so。那么,是否可以修改现有可执行文件上的链接路径?

我意识到另一种解决方案是确保现有的链接路径指向实际将目标文件复制到ldd显示的路径的有效目标文件。但是,我们说我的情况是不可行的。是否可以修改现有可执行文件的链接路径?

1 个答案:

答案 0 :(得分:1)

您指的路径不是特定于可执行文件的。它的系统具体。因此,当您将二进制文件从一台机器转移到另一台机器时,下一台机器可能具有完全不同的放置库设置。因此,机器A上的二进制文件可能在/usr/lib中的库中链接,但下一个机器B可以配置为链接到/home/test/lib中的库。仅举例来说。

当您希望可执行文件链接到其他库(在/ home / test / lib中)而不是默认库时。你可以通过设置LD_LIBRARY_PATH=/home/test/lib来实现。

查看http://wiredrevolution.com/system-administration/how-to-correctly-use-ld_library_path