【问题标题】:How to build library without sudo?如何在没有 sudo 的情况下构建库?
【发布时间】:2015-09-22 02:51:34
【问题描述】:

我通常建立我的图书馆./configure && make && sudo make install。然而,Travis 文档不鼓励使用 sudo http://docs.travis-ci.com/user/workers/container-based-infrastructure/

所以我将构建命令更改为./configure --prefix=$HOME && make && make install。这很有效,但是在下一步(构建 Python 扩展)我得到了一个错误

/usr/bin/ld: 找不到 -lprimesieve

有什么想法吗?是否需要在某些环境变量中添加$HOME/lib,因为我更改了前缀?

  1. 我的 travis 配置https://github.com/hickford/primesieve-python/blob/travis-ci/.travis.yml
  2. 构建日志错误https://travis-ci.org/hickford/primesieve-python/jobs/69536543#L382

【问题讨论】:

    标签: ld travis-ci configure


    【解决方案1】:

    尝试设置LD_LIBRARY_PATH,这类似于库的PATH。例如:

    LD_LIBRARY_PATH= $HOME/lib:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH 
    

    有关库路径变量的更多详细信息是here

    具体影响 configure 脚本如何将参数传递给编译的环境变量是 LIBSLD_FLAGSbash ./configure --help 提到了这些。

    正如您在 cmets 中提到的那样,LIBRARY_PATH 也需要设置。有关差异的解释,请参阅LD_LIBRARY_PATH vs LIBRARY_PATH

    【讨论】:

    • 谢谢。我还必须更新LIBRARY_PATHLD_LIBRARY_PATH。这是预期的吗?
    • 是的,这是意料之中的。抱歉遗漏了。
    猜你喜欢
    • 2012-07-23
    • 2019-08-04
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    相关资源
    最近更新 更多