2014-06-11 32 views
26

tôi đã cố gắng tất cả mọi thứ như:CMake là không thể tìm thấy thư viện BOOST

  1. biến môi trường Configure
  2. Hãy build tươi
  3. Cài đặt lại BOOST từ nguồn
  4. sudo apt-get install libboost-all-dev

Nhưng vẫn nhận được lỗi sau:

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. 

thư mục Source mã cho tăng: /usr/local/src/boost_1_45_0 Boost Thư viện đường dẫn: /usr/local/lib Boost header file: /usr/local/include/boost

Đây là 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" 

Làm thế nào để giải quyết những lỗi? Tui bỏ lỡ điều gì vậy?

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

Bạn có thể hiển thị đầu ra của CMake nếu bạn làm 'cmake. -DBoost_DEBUG = ON'? – Fraser

+0

@Fraser: http: //pastebin.com/cPRNegEi BTW phiên bản tăng cường của tôi là 1_45_0 –

+2

Có vẻ như nó không chọn các biến môi trường. Xem các dòng 8-10 của đầu ra của bạn. Bạn có thể thử chuyển chúng dưới dạng biến CMake. Có lẽ chỉ cần BOOST_ROOT là đủ: 'cmake. -DBOOST_ROOT =/usr/local' – Fraser

Trả lời

3

Tôi đang sử dụng này để thiết lập tăng từ cmake trong CMakeLists.txt tôi. Hãy thử một cái gì đó tương tự (hãy chắc chắn để cập nhật đường dẫn để cài đặt của bạn tăng).

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) 

này sẽ hoặc đường dẫn mặc định tìm kiếm (/usr, /usr/local) hoặc đường dẫn cung cấp thông qua các biến cmake (BOOST_ROOT, BOOST_INCLUDEDIR, BOOST_LIBRARYDIR). Nó hoạt động với tôi trên cmake> 2.6.

1

dường như câu trả lời là trong các ý kiến ​​và là một chỉnh sửa nhưng để làm rõ điều này nên làm việc cho bạn:

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

bạn cần phải xác định các đối số như các đối số dòng lệnh hoặc bạn có thể sử dụng một tập tin toolchain cho rằng , nhưng cmake sẽ không chạm vào các biến môi trường của bạn.

24

Cố gắng hoàn tất quá trình cmake với libs sau:

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

Đối với tôi, libboost-all-dev đã mất tích và nó đã giúp. – Zbyszek

+2

Tôi cũng như gói 'libboost-all-dev' đã giải quyết được' - KHÔNG thể tìm thấy vấn đề Cmake Boost' để tìm kiếm hệ thống tăng cường rộng. – loretoparisi

0

Tôi chỉ muốn chỉ ra rằng vĩ mô FindBoost có thể tìm kiếm một phiên bản trước đó, ví dụ, 1.58.0 khi bạn có thể có 1.60. Đã cài đặt 0. Tôi đề nghị popping mở macro FindBoost từ bất cứ điều gì nó là bạn đang cố gắng xây dựng, và kiểm tra xem đó là trường hợp. Bạn chỉ có thể chỉnh sửa nó để bao gồm phiên bản cụ thể của bạn. (Đây là vấn đề của tôi.)

Các vấn đề liên quan