我想從源代碼編譯圖形工具Ubuntu 16.04
,但有問題,它無法拿起正確的boost庫。我試圖對anaconda python進行編譯,所以必須提供額外的標誌到./configure
。我嘗試運行以下命令:強制g ++在一個位置尋找Boost忽略其他設置
./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
然而,這失敗,出現以下錯誤消息儘管libboost_python.so
駐留在/home/pmj27/anaconda2/lib
的事實正顯示在終端窗口
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
。
望着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
,這是錯誤的位置,然後失敗。我如何阻止它這樣做? (我相信這就是爲什麼圖形工具將無法編譯的原因。)
我也曾嘗試
./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是不好的形式,也是一個壞主意。您遇到的部分問題是由此導致的。 –