2

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

4

1 回答 1

1

您不能将库排除在链接之外。你可以指定一个特定的版本(尽管它可能很难看,特别是如果代码不是你的)。

优先考虑您的库的最简单方法是首先包含,您可以放入配置或环境变量中:

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
于 2013-03-18T14:52:39.223 回答