【问题标题】:Excluding a library from linking (make, configure)从链接中排除库(制作、配置)
【发布时间】:2012-10-09 06:34:45
【问题描述】:

假设我在 /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 是否默默地假定已安装库的标准路径并愉快地继续?如果是这种情况,我该如何排除某个库以考虑链接?

【问题讨论】:

    标签: makefile libraries configure


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      • 2015-09-25
      • 2011-10-26
      • 2018-12-15
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多