我使用 ubuntu 14.10 和 crosstool-ng-1.20.0 创建工具链,从主机:x86_64 到目标:i686, 我知道 glibc 会创建 ld.so,但我不知道如何将 ld.so 中的默认路径从“/lib、/usr/lib”更改为“/lib32、/usr/lib32”。
我想在目标机器上的 ld.so 中将默认路径从“/lib、/usr/lib”更改为我的设置“/lib32、/usr/lib32”。 (因为对于 32 位库,我将每个 .so 文件都放在/lib32 中,对于 x86_64 而不是 i686,我会将其他 .so 文件放到/lib 中)
我不想在编译时在主机上添加一些标志(如“-z nodeflib”、“--rpath=dir”)来更改每个二进制文件在目标机器上的搜索路径。我希望每个不使用这些标志的二进制文件都可以使用 ld.so 找到正确的库
有人知道怎么做吗?
附言。 我使用 crosstool-ng 来制作 gcc-4.9 利纳罗, glibc-2.20 利纳罗, binutl ...等...
最佳答案
您可能不需要更改默认路径,而是添加配置路径。
根据您的系统,ld.so
可以使用 /etc
/中的文件进行配置,也可能使用 '/etc/ld.so 下的文件进行配置.conf.d
或 /etc/ld.so.d
。 ld.so 的手册页和 ldconfig是开始阅读的好地方。
关于linux - 如何更改ld.so中的默认路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29573639/