从链接中排除库(make,configure)

时间:2012-10-09 06:34:45

标签: makefile libraries configure

假设我在/ 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应该优先考虑指定的版本,但是如果找不到它会怎样?配置是否静默采用已安装库的标准路径并继续愉快?如果是这种情况,我如何排除某个库以考虑链接?

1 个答案:

答案 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