linux - 在 linux 中链接不同的 .so 文件

标签 linux build-process

我正在尝试编译一个具有标准构建过程的软件,例如

configure
make
make install

该软件需要一个库,例如libreq.so 安装在/usr/local/lib 中。但是,我的问题是我想构建软件并将其与我安装在/home/user/mylibs 中的同一库的不同版本(我也有该库的源代码)链接。

我的问题是,如何针对/home/user/mylibs 中的库而不是/usr/local/lib 中的库编译和链接软件

我尝试将“LD_LIBRARY_PATH”设置为包含/home/user/mylibs,但这没有用。

谢谢!

最佳答案

当你有一个 autoconf 配置脚本时,使用:

CPPFLAGS=-I/home/user/include LDFLAGS=-L/home/user/mylibs ./configure ...

这会将指定的目录添加到搜索标题的目录列表中(当您使用库时通常是必需的),并将其他指定的目录添加到搜索实际库的列表中。

我一直在使用它 - 在我的工作机器上,/usr/local 由 MIS“维护”并且在 99.9% 的时间里包含过时的代码(并且是 NFS 挂载的,读取-仅),所以我努力避免使用它,并在 /usr/gnu 下维护我自己的、更接近当前的软件版本。它对我有用。

关于linux - 在 linux 中链接不同的 .so 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1405074/

相关文章:

Android MSM 内核 : copy_to_user fails

c# - 如何在 VS2008 中创建特定于配置的 C# 构建事件

java - 如何使用 Ant 加快 Eclipse 中的构建过程?

android - 在哪里可以找到与混淆器相关的 Android 构建选项的文档

linux - 在 Linux 中比较两个文件以匹配单词

java - 如何修复在 Docker 中运行的 Azure Cosmos 模拟器 (Linux) 中偶发的读取超时和服务不可用错误?

linux - 如何使用 curl 或 wget 将文件下载到目录中?

unit-testing - AspNetDevelopmentServerHost 属性的最佳实践是什么?

c# - 如何获取当前进程启动时的DateTime?

使用 Clang 进行交叉编译 - `crtbeginS.o: No such file or directory`