我尝试了一切:
sudo apt-get install libboost-all-dev
但仍然有以下错误:
CMake Error at /usr/share/cmake-2.8/Modules/FindBoost.cmake:1131 (message):
Unable to find the requested Boost libraries.
Unable to find the Boost header files. Please set BOOST_ROOT to the root
directory containing Boost or BOOST_INCLUDEDIR to the directory containing
Boost's headers.
Call Stack (most recent call first):
CMakeLists.txt:147 (find_package)
CMake Error at /usr/share/cmake-2.8/Modules/FindBoost.cmake:1131 (message):
Unable to find the requested Boost libraries.
Unable to find the Boost header files. Please set BOOST_ROOT to the root
directory containing Boost or BOOST_INCLUDEDIR to the directory containing
Boost's headers.
提升的源代码目录:/usr/local/src/boost_1_45_0
提升图书馆路径:/usr/local/lib
Boost Header文件:/usr/local/include/boost
以下是bashrc file
:
BOOST_ROOT="/usr/local/src/boost_1_45_0"
Boost_LIBRARY_DIRS="/usr/local/lib"
BOOST_INCLUDEDIR="/usr/local/src/boost_1_45_0"
如何解决这些错误?我错过了什么吗?
cmake -DCMAKE_TOOLCHAIN_FILE=$ANDTOOLCHAIN -DBOOST_ROOT=/usr/local/src/boost_1_45_0 -DBOOST_INCLUDEDIR=/usr/local/include/boost -DBOOST_LIBRARYDIR=/usr/local/lib -DPYTHON_LIBRARIES=/usr/local/lib/python2.7 -DPYTHON_INCLUDE_DIRS=/usr/include/python2.7 -DCMA-DRDK_BUILD_PYTHON_WRAPPERS=
答案 0 :(得分:35)
尝试使用以下库完成cmake进程:
sudo apt-get install cmake libblkid-dev e2fslibs-dev libboost-all-dev libaudit-dev
答案 1 :(得分:8)
我在CMakeLists.txt
中使用它来设置来自cmake的提升。尝试类似的东西(确保更新你的boost安装路径)。
SET (BOOST_ROOT "/opt/boost/boost_1_57_0")
SET (BOOST_INCLUDEDIR "/opt/boost/boost-1.57.0/include")
SET (BOOST_LIBRARYDIR "/opt/boost/boost-1.57.0/lib")
SET (BOOST_MIN_VERSION "1.55.0")
set (Boost_NO_BOOST_CMAKE ON)
FIND_PACKAGE(Boost ${BOOST_MIN_VERSION} REQUIRED)
if (NOT Boost_FOUND)
message(FATAL_ERROR "Fatal error: Boost (version >= 1.55) required.")
else()
message(STATUS "Setting up BOOST")
message(STATUS " Includes - ${Boost_INCLUDE_DIRS}")
message(STATUS " Library - ${Boost_LIBRARY_DIRS}")
include_directories(${Boost_INCLUDE_DIRS})
link_directories(${Boost_LIBRARY_DIRS})
endif (NOT Boost_FOUND)
这将搜索默认路径(/usr
,/usr/local
)或通过cmake变量(BOOST_ROOT
,BOOST_INCLUDEDIR
,BOOST_LIBRARYDIR
)提供的路径。它适用于cmake> 2.6。
答案 2 :(得分:1)
似乎答案在评论和编辑中,但澄清这应该适合你:
export BUILDDIR='your path to build directory here'
export SRCDIR='your path to source dir here'
export BOOST_ROOT="/opt/boost/boost_1_57_0"
export BOOST_INCLUDE="/opt/boost/boost-1.57.0/include"
export BOOST_LIBDIR="/opt/boost/boost-1.57.0/lib"
export BOOST_OPTS="-DBOOST_ROOT=${BOOST_ROOT} -DBOOST_INCLUDEDIR=${BOOST_INCLUDE} -DBOOST_LIBRARYDIR=${BOOST_LIBDIR}"
(cd ${BUILDDIR} && cmake ${BOOST_OPTS} ${SRCDIR})
您需要将参数指定为命令行参数,或者您可以使用工具链文件,但cmake不会触及您的环境变量。
答案 3 :(得分:0)
我只是想指出FindBoost宏可能正在寻找早期版本,例如1.58.0,当你可能安装了1.60.0时。我建议从你试图构建的任何东西弹出FindBoost宏,并检查是否是这种情况。您只需编辑它即可包含您的特定版本。 (这是我的问题。)
答案 4 :(得分:0)
感谢Paul-g的建议。就我而言,这有点不同。
我按照https://www.boost.org/doc/libs/1_59_0/more/getting_started/unix-variants.html
的步骤5安装了Boost。然后在“ FindBoos.cmake”中添加PATH目录,该目录位于/usr/local/share/cmake-3.5/Modules中:
SET (BOOST_ROOT "../boost_1_60_0") SET (BOOST_INCLUDEDIR "../boost_1_60_0/boost") SET (BOOST_LIBRARYDIR "../boost_1_60_0/libs") SET (BOOST_MIN_VERSION "1.55.0") set (Boost_NO_BOOST_CMAKE ON)
答案 5 :(得分:0)
我第一次想在python(GPU版本)上安装LightGBM时遇到相同的错误。
您可以使用以下命令行简单地对其进行修复:
sudo apt-get install cmake libblkid-dev e2fslibs-dev libboost-all-dev libaudit-dev
boost库将被安装,您可以继续安装过程。
答案 6 :(得分:0)
尝试将-DBoost_DEBUG=TRUE
添加到cmake
命令行中,以查看FindBoost
宏的搜索位置。
答案 7 :(得分:0)
简而言之,如果您在自定义路径中安装boost,所有头文件都必须位于$ {path} / boost /中。
如果您想知道为什么在设置BOOST_ROOT/BOOST_INCLUDEDIR
后cmake找不到所需的Boost库,则可以选中cmake install location path_to_cmake/share/cmake-xxx/Modules/FindBoost
。
cmake,它将在Boost_INCLUDE_DIR
的{{1}}中找到boost/config.hpp
。这意味着您的boost头文件必须为BOOST_ROOT
,其他任何格式(例如${path}/boost/
)都适合CMakeLists.txt中的${path}/boost-x.y.z
。
答案 8 :(得分:0)
我在一个高山docker容器中遇到了同样的问题,我的解决方案是添加boost-dev apk库,因为libboost-dev不可用。