2014-06-11 4 views
26

मैंने कोशिश की सब कुछ की तरह:CMake बूस्ट पुस्तकालयों ढूँढने में सक्षम नहीं है

  1. कॉन्फ़िगर वातावरण चर
  2. ताजा निर्माण
  3. स्रोत
  4. sudo apt-get install libboost-all-dev

से बूस्ट को पुन: इंस्टॉल बनाओ लेकिन अभी भी निम्नलिखित त्रुटियां मिल रही हैं:

को बढ़ावा देने के लिए 10
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 बूस्ट हैडर फ़ाइल: /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

यदि आप 'सेमेक' करते हैं तो क्या आप सीएमके के आउटपुट को दिखा सकते हैं। -DBoost_DEBUG = ON'? – Fraser

+0

@ फ़्रेसर: http: //pastebin.com/cPRNegEi बीटीडब्ल्यू मेरा बूस्ट संस्करण 1_45_0 –

+2

ऐसा लगता है कि यह पर्यावरण चर नहीं उठा रहा है। अपने आउटपुट के लाइन 8-10 देखें। आप इन्हें सीएमके चर के रूप में पारित करने का प्रयास कर सकते हैं। शायद यहां तक ​​कि बस BOOST_ROOT पर्याप्त होगा: 'cmake। -DBOOST_ROOT =/usr/local' – Fraser

उत्तर

3

मैं अपने CMakeLists.txt में cmake से बढ़ावा स्थापित करने के लिए इस का उपयोग कर रहा हूँ। कुछ ऐसा करने का प्रयास करें (बूस्ट की स्थापना में पथ अपडेट करना सुनिश्चित करें)।

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 पर काम करता है।

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

आप आदेश पंक्ति तर्क के रूप में तर्क निर्दिष्ट करने की आवश्यकता या आप उसके लिए एक toolchain फ़ाइल का उपयोग कर सकते , लेकिन सेमेक आपके पर्यावरण चर को छू नहीं पाएगा।

24

निम्नलिखित libs साथ cmake प्रक्रिया को पूरा करने का प्रयास करें:

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

मेरे लिए libboost-all-dev गायब था और इससे मदद मिली। – Zbyszek

+2

मुझे साथ ही 'libboost-all-dev' पैकेज' को हल किया गया - बूस्ट सिस्टम चौड़ा खोजने के लिए बूस्ट 'सीएमके मुद्दे नहीं मिला। – loretoparisi

0

मैं सिर्फ बाहर बात करने के लिए जब आप 1.60 हो सकता है FindBoost मैक्रो किसी पुराने संस्करण की तलाश में हो सकता है उदाहरण के लिए, 1.58.0 के लिए, चाहते हैं। 0 स्थापित मेरा सुझाव है कि जो भी आप इसे बनाने का प्रयास कर रहे हैं, और यह जांचने की कोशिश कर रहे हैं, तो FindBoost मैक्रो को खोलने का सुझाव दें। आप इसे अपने विशेष संस्करण को शामिल करने के लिए बस इसे संपादित कर सकते हैं। (यह मेरी समस्या थी।)