Ich habe alles versucht wie:
Sudo apt-get install libboost-all-dev
Aber immer noch folgende Fehler bekommen:
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.
Quellcode-Verzeichnis für boost: /usr/local/src/boost_1_45_0
Boost Library-Pfad: /usr/local/lib
Boost-Header-Datei: /usr/local/include/boost
Hier ist 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"
Wie löse ich diese Fehler? Verpasse ich etwas
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=
Versuchen Sie, den cmake-Prozess mit den folgenden Libs abzuschließen:
Sudo apt-get install cmake libblkid-dev e2fslibs-dev libboost-all-dev libaudit-dev
Ich verwende dies, um den Boost von cmake in meinem CMakeLists.txt
einzurichten. Versuchen Sie etwas Ähnliches (stellen Sie sicher, dass Sie die Pfade zu Ihrer Boost-Installation aktualisieren).
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)
Dabei werden entweder Standardpfade (/usr
, /usr/local
) oder der durch die cmake-Variablen (BOOST_ROOT
, BOOST_INCLUDEDIR
, BOOST_LIBRARYDIR
) bereitgestellte Pfad durchsucht. Es funktioniert für mich auf cmake> 2.6.
anscheinend ist die Antwort in den Kommentaren und als Bearbeitung, aber zur Klarstellung sollte dies für Sie funktionieren:
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})
sie müssen die Argumente als Befehlszeilenargumente angeben oder Sie können dafür eine Toolchain-Datei verwenden, aber cmake berührt Ihre Umgebungsvariablen nicht.
Fügen Sie der cmake
-Befehlszeile -DBoost_DEBUG=TRUE
hinzu, um zu sehen, wo das Makro FindBoost
sucht.
Ich hatte das gleiche Problem in einem Alpine Docker-Container. Meine Lösung bestand darin, die boost-dev apk-Bibliothek hinzuzufügen, da libboost-dev nicht verfügbar war.
Lange Antwort zu kurz, wenn Sie Boost in benutzerdefinierten Pfad installieren, müssen alle Header-Dateien in $ {Pfad}/Boost /.
wenn Sie wissen möchten, warum cmake die angeforderten Boost-Bibliotheken nicht finden kann, nachdem Sie BOOST_ROOT/BOOST_INCLUDEDIR
eingestellt haben, können Sie cmake install location path_to_cmake/share/cmake-xxx/Modules/FindBoost
aktivieren.
cmake, das Boost_INCLUDE_DIR
in boost/config.hpp
in BOOST_ROOT
findet. Das bedeutet, dass Ihre Boost-Header-Datei ${path}/boost/
Haben muss. Jedes andere Format (z. B. ${path}/boost-x.y.z
) Ist für find_package
In CMakeLists.txt nicht geeignet.
Ich möchte nur darauf hinweisen, dass das FindBoost-Makro möglicherweise nach einer früheren Version sucht, beispielsweise 1.58.0, wenn Sie 1.60.0 installiert haben. Ich empfehle, das FindBoost-Makro von dem zu öffnen, was Sie erstellen möchten, und zu prüfen, ob dies der Fall ist. Sie können es einfach bearbeiten, um Ihre bestimmte Version aufzunehmen. (Dies war mein Problem.)
Vielen Dank an Paul-g für Ihre Beratung. Für meinen Teil war es etwas anders.
Ich habe Boost installiert, indem ich den folgenden Schritt 5 befolgte: https://www.boost.org/doc/libs/1_59_0/more/getting_started/unix-variants.html
Und dann füge ich das PATH-Verzeichnis in "FindBoos.cmake" hinzu, das sich in /usr/local/share/cmake-3.5/Modules befindet:
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)
Ich habe die gleiche Fehlermeldung erhalten, als ich LightGBM zum ersten Mal auf Python (GPU-Version) installieren wollte.
Sie können es einfach mit dieser Befehlszeile beheben:
Sudo apt-get install cmake libblkid-dev e2fslibs-dev libboost-all-dev libaudit-dev
die Boost-Bibliotheken werden installiert und Sie können den Installationsprozess fortsetzen.