linux - 如何更改ld.so中的默认路径

标签 linux gcc linker toolchain crosstool-ng

我使用 ubuntu 14.10 和 crosstool-ng-1.20.0 创建工具链,从主机:x86_64 到目标:i686, 我知道 glibc 会创建 ld.so,但我不知道如何将 ld.so 中的默认路径从“/lib、/usr/lib”更改为“/lib32、/usr/lib32”。

  1. 我想在目标机器上的 ld.so 中将默认路径从“/lib、/usr/lib”更改为我的设置“/lib32、/usr/lib32”。 (因为对于 32 位库,我将每个 .so 文件都放在/lib32 中,对于 x86_64 而不是 i686,我会将其他 .so 文件放到/lib 中)

  2. 我不想在编译时在主机上添加一些标志(如“-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.dld.so 的手册页和 ldconfig是开始阅读的好地方。

关于linux - 如何更改ld.so中的默认路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29573639/

相关文章:

c - C程序计算程序执行时间时出错

gcc-4.1 -> gcc-4.8 链接器错误。新的 ".text.unlikely"部分重叠 ".text"部分

c++ - MySQL Connector/C++ 库链接错误问题

c++ - 外部符号上的静态链接 OpenCV CUDA 应用程序错误

linux - 将 Canvas 大小裁剪为透明 png 文件中可见图像大小的脚本

linux - 无法附加到运行 Docker 容器的 bash

linux - CMake:使用 MinGW 交叉编译 linux-to-windows 没有找到一些系统头文件

linux - linux下如何导航到某个目录?

c++ - 静态变量初始化顺序

c++ - 链接 C++17、C++14 和 C++11 对象是否安全