我正在尝试编译一个具有标准构建过程的软件,例如
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/