2014-06-11 10 views
26

próbowałem wszystko jak:CUpewnij nie jest w stanie znaleźć biblioteki BOOST

  1. zmienna konfiguracja środowiska
  2. Dodać świeży Build
  3. Ponowne zainstalowanie impuls ze źródła
  4. sudo apt-get install libboost-all-dev

Nadal jednak otrzymuję następujące błędy:

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. 

katalog źródłowy kod doładowania: /usr/local/src/boost_1_45_0 doładowania ścieżka Biblioteka: /usr/local/lib doładowania plik nagłówka: /usr/local/include/boost

Oto 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" 

Jak rozwiązać te błędy? Czy coś mi brakuje?

Edit:

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

Czy możesz pokazać wyjście CMake, jeśli wykonasz polecenie cmake. -DBoost_DEBUG = ON'? – Fraser

+0

@Fasera: http: //pastebin.com/cPRNegEi BTW moją wersją doładowania jest 1_45_0 –

+2

Wygląda na to, że nie odczytuje zmiennych środowiskowych. Zobacz wiersze 8-10 danych wyjściowych. Możesz spróbować przekazać je jako zmienne CMake. Może wystarczyłoby tylko BOOST_ROOT: 'cmake. -DBOOST_ROOT =/usr/local' – Fraser

Odpowiedz

3

Używam tego skonfigurować impuls z cmake w moim CMakeLists.txt. Spróbuj czegoś podobnego (pamiętaj, aby zaktualizować ścieżki do instalacji 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) 

To będzie albo ścieżki domyślnej wyszukiwarki (/usr, /usr/local) lub ścieżka przewidziane przez zmienne CUpewnij (BOOST_ROOT, BOOST_INCLUDEDIR, BOOST_LIBRARYDIR). Działa dla mnie na cmake> 2.6.

1

wydaje się, że odpowiedź jest w komentarzach i jako edit ale wyjaśnienie to powinno działać dla Ciebie:

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}) 

trzeba podać argumenty jako argumenty wiersza poleceń lub użyć pliku toolchain za to , ale cmake nie będzie dotykał zmiennych środowiskowych.

24

Spróbuj pełnego procesu cmake z następującymi bibliotekami:

sudo apt-get install cmake libblkid-dev e2fslibs-dev libboost-all-dev libaudit-dev 
+2

Dla mnie libboost-all-dev brakowało i to pomogło. – Zbyszek

+2

Ja również pakiet 'libboost-all-dev' rozwiązał problem" Could NOT find Boost' ", aby wyszukać system boost. – loretoparisi

0

Chcę tylko podkreślić, że makro FindBoost może być patrząc na wcześniejszej wersji, na przykład, 1.58.0, kiedy można mieć 1.60. 0 zainstalowane. Sugeruję otwieranie makra FindBoost z tego, co próbujesz zbudować, i sprawdzanie, czy tak jest. Możesz go po prostu edytować, dodając swoją konkretną wersję. (To był mój problem.)

Powiązane problemy