【发布时间】:2017-02-23 19:40:06
【问题描述】:
我正在尝试从Ubuntu 16.04 的源代码编译图形工具,但问题是它无法获取正确的 boost 库。我正在尝试针对 anaconda python 编译它,因此必须向./configure 提供额外的标志。我尝试运行以下命令:
./configure CXX="g++-5" CXXFLAGS="-std=gnu++14 -Wno-unused-local-typedefs" CPPFLAGS="-I/home/pmj27/anaconda2/lib" PYTHON="/home/pmj27/anaconda2/bin/python2.7" CAIROMM_LIBS="-L/home/pmj27/anaconda2/include/cairomm-1.0/cairomm" --enable-openmp
但是这会失败,终端窗口中会显示以下错误消息
checking for boostlib >= 1.54.0... configure: We could not detect the boost libraries (version 1.54 or higher). If you have a staged boost library (still not installed) please specify $BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.
checking whether the Boost::Python library is available... no
configure: error: No usable boost::python found
尽管libboost_python.so 驻留在/home/pmj27/anaconda2/lib 中。
看config.log的错误信息好像是:
configure:19187: g++-5 -c -fopenmp -O3 -fvisibility=default -fvisibility-inlines-hidden -Wno-deprecated -ftemplate-depth-250 -DNDEBUG -Wall -Wextra -ftemplate-backtrace-limit=0 -std=gnu++14 -Wno-unused-local-typedefs -I/home/pmj27/anaconda2/lib -I/usr/include conftest.cpp >&5
conftest.cpp:35:33: fatal error: /usr/local/include/boost/version.hpp: Permission denied
compilation terminated.
所以似乎正在发生的事情是它首先查看/usr/local/include/boost,这是错误的位置,然后失败了。我该如何阻止它这样做? (我想这就是 graph-tool 无法编译的原因。)
我也试过了
./configure CXX="g++-5" CXXFLAGS="-std=gnu++14 -Wno-unused-local-typedefs -I/home/pmj27/anaconda2/lib" PYTHON="/home/pmj27/anaconda2/bin/python2.7" CAIROMM_LIBS="-L/home/pmj27/anaconda2/include/cairomm-1.0/cairomm" --enable-openmp
但是现在/home/pmj27/anaconda2/lib 似乎出现在/usr/local/include/boost 之前,但仍然失败并显示相同的错误消息:
configure:19104: checking for boostlib >= 1.54.0
configure:19187: g++-5 -c -fopenmp -O3 -fvisibility=default -fvisibility-inlines-hidden -Wno-deprecated -ftemplate-depth-250 -DNDEBUG -Wall -Wextra -ftemplate-backtrace-limit=0 -std=gnu++14 -Wno-unused-local-typedefs -I/home/pmj27/anaconda2/lib -I/usr/include conftest.cpp >&5
conftest.cpp:35:33: fatal error: /usr/local/include/boost/version.hpp: Permission denied
compilation terminated.
【问题讨论】:
-
在 /usr/local 中读取某些内容时收到“权限被拒绝”的事实意味着您安装它时使用了错误的权限。
-
是的,我可以通过使用
sudo来克服这个问题。我试图阻止使用这些 boost 库,因为我需要使用 anaconda 库,以防止在运行graph-tool时出现 c++ 签名不匹配。 -
你没有克服它,你可能是在你不应该使用 sudo (例如,以 root 身份运行)时导致问题的。像这样使用 sudo 是不好的形式,也是一个坏主意。您遇到的部分问题是由此造成的。
标签: c++ boost g++ graph-tool