2012-10-11 102 views
2

Building UHD(http://ettus-apps.sourcerepo.com/redmine/ettus/projects/uhd/wiki) 下載鏈接https://github.com/EttusResearch/UHD-Mirror/zipball/release_003_004_003 我想選擇我正在使用的Boost版本cmake安裝ubuntu boost軟件包時無法鏈接到自定義提升

使用Ubuntu 11.10 64位 我用-fPIC構建了一個自定義Boost。我使用靜態鏈接 我編輯主機/文件的CMakeLists.txt這些3線是已經將文件

FIND_PACKAGE(Boost 1.49 COMPONENTS ${BOOST_REQUIRED_COMPONENTS}) 
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) 
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) 

之前加入

set(Boost_USE_STATIC_LIBS ON) 
set(BOOST_ROOT "/home/bastien/verisat/lib_boost_1_49_0_with_test_po_fPIC") 
set(BOOST_INCLUDEDIR "/home/bastien/verisat/lib_boost_1_49_0_with_test_po_fPIC/include") 
set(BOOST_LIBRARYDIR "/home/bastien/verisat/lib_boost_1_49_0_with_test_po_fPIC/lib") 

決不總是鏈接少在/ usr提振/而不是一個指定 當我刪除升壓Ubuntu的軟件包

sudo apt-get remove libboost-all-dev 
sudo apt-get autoremove 

然後它的工作原理,並指向增壓版本的lib指定

我希望能夠做到這一點,而無需卸載默認提升? 默認值是1.46和我的1.49,但設置最低版本沒有幫助

回答

1

在某處安裝正確的版本並使用環境變量BOOST_ROOT來指定它。 CMake會在正常系統路徑之前嘗試。

+1

我同意。我也使用cmake進行默認boost的自定義boost,並在FIND_PACKAGE(Boost ...)之前設置了'SET(BOOST_ROOT/dev/cpp/gcc47/boost)' – Offirmo

+0

我已經完成了。如問題所示,但它沒有工作,直到我卸載默認的Ubuntu的提升(如在問題中所述......) – bastien

+0

@ user611191這很奇怪,也許是因爲它的版本相同,它更喜歡基地安裝一個?我不能說我以前遇到過。 –

3

可以設置Boost_NO_SYSTEM_PATHS變量:

# Boost_NO_SYSTEM_PATHS  Set to TRUE to suppress searching in system 
#        paths (or other locations outside of BOOST_ROOT 
#        or BOOST_INCLUDEDIR). Useful when specifying 
#        BOOST_ROOT. Defaults to OFF. 
#         [Since CMake 2.8.3]