更改ld-linux位置

And*_*uel 3 c++ linux gcc shared-libraries ld

我发现要加载库,首先打开一个可执行文件/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(它也存在于我的发行作为一个符号链接).

nne*_*neo 6

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