如何在没有sudo的情况下构建库?

时间:2015-07-04 12:43:52

标签: ld travis-ci configure

我通常会构建我的库./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
  3. 构建日志

1 个答案:

答案 0 :(得分:2)

尝试为库设置LD_LIBRARY_PATHPATH。例如:

LD_LIBRARY_PATH= $HOME/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH 

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

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

正如你在评论中提到的LIBRARY_PATH也需要设置。有关差异的解释,请参阅LD_LIBRARY_PATH vs LIBRARY_PATH