2011-10-21 60 views
14

我想定義系統上可用的最小升壓版本。我嘗試了以下方法。不幸的是,這不起作用,因爲它試圖編譯也只有系統上可用的boost 1.40.0。在cmake中設置升壓的最低版本

SET(Boost_USE_STATIC_LIBS OFF) 
SET(Boost_USE_MULTITHREAD OFF) 
SET(BOOST_MIN_VERSION "1.47.0") 

FIND_PACKAGE(Boost REQUIRED) 

FIND_PACKAGE(Boost REQUIRED) 
if (NOT Boost_FOUND) 
     message(FATAL_ERROR "Fatal error: Boost (version >= 1.47.0) required.\n") 
endif (NOT Boost_FOUND) 

INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) 
LINK_DIRECTORIES(${Boost_LIBRARY_DIRS}) 

在編譯之前,我是如何得到cmake來控制正確的boost版本的?

回答

12

基於this似乎FIND_PACKAGE忽略SET(BOOST_MIN_VERSION "1.47.0"),而不是你可以使用FIND_PACKAGE(Boost 1.47.0 REQUIRED)或略微更好FIND_PACKAGE(Boost ${BOOST_MIN_VERSION} REQUIRED)

+0

感謝FIND_PACKAGE(升壓$ {BOOST_MIN_VERSION}必選)工作。 – tune2fs

+1

@ tune2fs這隻適用於次要版本。如果你有提升2.0(假設存在這樣的事情),這將無法找到它。 – juanchopanza