更改ld-linux位置

问题描述 投票:3回答:2

我发现要加载库,可执行文件首先打开/lib/ld-linux-x86-64.so.2。有关加载共享库的所有功能(在许多路径中搜索,使用rpath等)只有在加载ld-linux之后才能工作,因为它是实现这些功能的ld-linux

在我看来,ld-linux.so位置是可执行的硬编码(在我的可执行文件上调用strings加强了这个理论)。我的问题是,在我的linux发行版中,编译器(g ++)将ld-linux位置设置为/lib/ld-linux-x86-64.so.2。在Ubuntu(更受欢迎)上,它位于/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2

我想知道我是否可以在ld-linux.so上查找/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2我的可执行文件(它也作为符号链接出现在我的发行版中)。

c++ linux gcc shared-libraries ld
2个回答
6
投票

尝试将-Wl,--dynamic-linker=/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2添加到您的LDFLAGS


0
投票

patchelf可用于更改ld-linux解释器的路径。

© www.soinside.com 2019 - 2024. All rights reserved.