假设我在/ usr / lib或/ usr / local / lib中有一个库,make和configure能够找到它并相应地运行。
现在,假设我有另一个版本的库,我不愿意安装;我想链接一个可执行文件与这个版本;我的(小)经验告诉我,我可以这样做(例如在配置脚本的情况下):
./configure \
CFLAGS="-I/My/Non/Standard/Path/libpng-1.5.12" \
CXXFLAGS="-I/My/Non/Standard/Path/libpng-1.5.12" \
LDFLAGS="-L/My/Non/Standard/Path/libpng-1.5.12"
我认为configure应该优先考虑指定的版本,但是如果找不到它会怎样?配置是否静默采用已安装库的标准路径并继续愉快?如果是这种情况,我如何排除某个库以考虑链接?
答案 0 :(得分:1)
您不能排除图书馆的链接。您可以指定一个特定版本(尽管它可能很难看,特别是如果代码不是您的)。
优先考虑你的lib的最简单的方法是首先,你可以放入配置或环境变量:
export C_INCLUDE_PATH=/Path/to/yours/include/files:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/Path/to/yours/include/cpp/files:$CPLUS_INCLUDE_PATH
export LD_LIBRARY_PATH=/Path/to/yours/lib/files:$LD_LIBRARY_PATH