2014-11-05 83 views
8

我想弄清楚庫的CMakeList.txt中Find的組件。如何確定CMake的Boost庫名稱

我看着這個目錄/usr/local/include/boost。我隨機挑選一些文件夾並嘗試使用FIND_PACKAGE。以下這些都很好。

FIND_PACKAGE(Boost COMPONENTS thread system log log_setup 
        signals graph memory_order program_options REQUIRED) 

,我使用的特定一個是property_tree。它不工作,併產生以下錯誤消息:

在/Applications/CMake.app/Contents/share/cmake-3.1/Modules/FindBoost.cmake:1182(消息)

CMake的錯誤:

無法找到請求的Boost庫。

加速版本:1.55.0

升壓包括路徑:在/ usr /本地/包括

找不到以下靜態Boost庫:

boost_property_tree 

誰能解釋如何或者我可以在哪裏找到用於提升的正確庫名稱?

回答

12

COMPONENTS部分FIND_PACKAGE只搜索已編譯的庫。它無法檢查構成Boost主要部分的只包含頭文件的庫。只有少數需要鏈接的庫(主要是那些執行平臺特定事務的庫)。

從你的實施例中,只有threadsignals(對比signals2其是僅標頭),systemprogram_options需要被建立與您的程序預先然後連接。其餘的,包含相關的頭文件就足夠了。

因此,將${Boost_INCLUDE_DIRS}添加到目標的包含目錄就足夠了。

這裏查看這些庫的文件列表Which boost libraries are header-only?

相關問題