我很想听听你解决这个问题的解释和方法,这个问题我已经面对这么长时间了。
我在远程集群中工作,不允许sudo命令,不允许对$ HOME分支上的目录进行任何操作($HOME=/storage/5/trentalove
)
我需要配置
$HOME/external/trentacoollime
使用boost库,我使用$HOME/boost_1_65_1
的boost_1_65_1.tar.bz2源码安装在http://www.boost.org/users/history/version_1_65_1.html中
(请注意,不允许使用sudo apt-get install libboost-all-dev
。)
然后,我在.bash_profile中定义我的PATH变量并导出为`export PATH = $ HOME / boost_1_65_1:$ PATH'
但是,当我在$ HOME / external / trentacoollime目录中配置时,用
./configure
我被提示错误消息
configure:error:找不到Boost头文件版本> = 1.41.0
当我配置时
./configure --with-boost=../../boost_1_65_1
它没有给我任何错误消息并成功配置。
我的猜测是,因为我定义并将PATH变量导出到boost目录,所以当我执行--with-boost=../../boost_1_65_1
命令时,我不需要./configure
选项。但是,我需要它。
有人可以解释我错过了什么吗?
附:我在自己的机器上使用sudo apt-get install libboost-all-dev
做了同样的事情,/usr/include
在$HOME/external/trentacoollime
目录下安装了boost_1_65_1。然后我仍然可以用./configure
和没有--with-boost=
选项来配置/usr/include
($ PATH的定义与集群中的相同)。但请注意,我无法在群集中实现相同的策略,因为我没有权限使用sudo,也没有任何类型的mv,cp,ln命令来$HOME
,它位于比我的--with-boost
目录更高的分支。
使用PATH对autotools没有影响(除了可能在配置过程中找到要执行的二进制文件)。
除非您的具体项目已做出其他安排,否则您需要提供pkg-config
。有时候他们会使用BOOST_DIR
或者选择一个专用的环境变量(如BOOST_ROOT
或qazxswpoi)。
我认为这些都不适用于基于autotools的项目。