是否可以将目录永久添加到默认的 ld 搜索路径?
Is it possible to permanently add directories to the default ld search path?
我正在尝试安装将在此节点上普遍使用的库。当前,该库安装在包含其版本名称 /opt/sample-x.y.z/lib/libsample.so 的位置。理想情况下,我希望能够更新库,更改系统配置,而不是因为需要在琐碎的更改中更改路径而打扰其他开发人员。我已经将库目录添加到 /etc/ld.so.conf.d/sample.conf 和 运行 ldconfig,但这似乎只影响加载而不影响链接。
当我 运行 ldconfig -v | grep sample
时,我正确地看到了 libsample.so。
但是,每当我运行 ld -lsample --verbose
,它都找不到图书馆。在详细的输出中,它详细说明了它搜索的目录,而我使用 ldconfig 添加的目录不存在。作为一种解决方法,我测试了向 /usr/lib 中的库添加一个符号链接,并且 ld 能够找到它。
是否有其他方法可以将库添加到默认链接器路径?理想情况下,我正在寻找一个可以修改的配置文件,类似于用于加载的配置文件。
如果重要,节点是Centos7节点。
不,这是不可能的。 ld 在链接阶段使用的路径是通过在构建过程中拉入 ld 的脚本配置的。在构建 ld 后无法更新这些。还有其他一些与为 GCC 完成此操作相关的问题和答案,这些问题和答案似乎涉及 LIBRARY_PATH 环境变量。但是,该解决方案是特定于 gcc 的。
我正在尝试安装将在此节点上普遍使用的库。当前,该库安装在包含其版本名称 /opt/sample-x.y.z/lib/libsample.so 的位置。理想情况下,我希望能够更新库,更改系统配置,而不是因为需要在琐碎的更改中更改路径而打扰其他开发人员。我已经将库目录添加到 /etc/ld.so.conf.d/sample.conf 和 运行 ldconfig,但这似乎只影响加载而不影响链接。
当我 运行 ldconfig -v | grep sample
时,我正确地看到了 libsample.so。
但是,每当我运行 ld -lsample --verbose
,它都找不到图书馆。在详细的输出中,它详细说明了它搜索的目录,而我使用 ldconfig 添加的目录不存在。作为一种解决方法,我测试了向 /usr/lib 中的库添加一个符号链接,并且 ld 能够找到它。
是否有其他方法可以将库添加到默认链接器路径?理想情况下,我正在寻找一个可以修改的配置文件,类似于用于加载的配置文件。
如果重要,节点是Centos7节点。
不,这是不可能的。 ld 在链接阶段使用的路径是通过在构建过程中拉入 ld 的脚本配置的。在构建 ld 后无法更新这些。还有其他一些与为 GCC 完成此操作相关的问题和答案,这些问题和答案似乎涉及 LIBRARY_PATH 环境变量。但是,该解决方案是特定于 gcc 的。