簡體   English   中英

Boost_LIBRARIES未定義

[英]Boost_LIBRARIES not defined

我正在嘗試編譯FreeLing,它使用CMake來檢測Boost。 這是負責它的代碼:

  find_package(Boost COMPONENTS regex filesystem thread program_options REQUIRED)

找到以下組件(根據CMake生成的輸出):

-- Found Boost 1.70.0 at /home/ambs/usr/lib/cmake/Boost-1.70.0
--   Requested configuration: QUIET REQUIRED COMPONENTS regex;filesystem;thread;program_options
-- Found boost_headers 1.70.0 at /home/ambs/usr/lib/cmake/boost_headers-1.70.0
-- Found boost_regex 1.70.0 at /home/ambs/usr/lib/cmake/boost_regex-1.70.0
--   libboost_regex.so.1.70.0
-- Adding boost_regex dependencies: headers
-- Found boost_filesystem 1.70.0 at /home/ambs/usr/lib/cmake/boost_filesystem-1.70.0
--   libboost_filesystem.so.1.70.0
-- Adding boost_filesystem dependencies: headers
-- Found boost_thread 1.70.0 at /home/ambs/usr/lib/cmake/boost_thread-1.70.0
--   libboost_thread.so.1.70.0
-- Adding boost_thread dependencies: headers
-- Found boost_program_options 1.70.0 at /home/ambs/usr/lib/cmake/boost_program_options-1.70.0
--   libboost_program_options.so.1.70.0
-- Adding boost_program_options dependencies: headers
-- Boost  found.
-- Found Boost components:
   regex;filesystem;thread;program_options

但是,似乎從未設置Boost_LIBRARIES 我嘗試了這個:

  find_package(Boost COMPONENTS regex filesystem thread program_options REQUIRED)
  message(STATUS "Boost_LIBRARIES=" ${Boost_LIBRARIES})

並且它總是輸出一個空字符串。

作為參考,我有CMake版本3.14.3和Boost版本1.70.0。

在/home/ambs/usr/lib/cmake/Boost-1.70.0處找到Boost 1.70.0

意味着CMake模塊FindBoost.cmake不會使用其自己的方法檢測Boost庫和標頭,而是訴諸於位於日志顯示的目錄中的BoostConfig.cmake腳本。

FindBoost.cmake模塊的文檔以這種方式進行注釋:

該模塊查找標頭和請求的組件庫,或“ Boost CMake”版本提供的C​​Make軟件包配置文件。 對於后一種情況,請跳到下面的“ Boost CMake”部分。 對於前一種情況,結果報告為變量:

簡而言之,使用BoostConfig.cmake腳本意味着它設置了自己的變量或目標,而FindBoost.cmake文檔中描述的變量或目標無效。

最有可能的是,“ Config”文件以與FindBoost.cmake文檔中所述相同的方式設置IMPORTED目標 ,即Boost::regexBoost::filesystem等。


如果要禁用使用BoostConfig.cmake並強制FindBoost.cmake其文檔中所述的行為,請設置Boost_NO_BOOST_CMAKE變量。 例如,當調用cmake

cmake -DBoost_NO_BOOST_CMAKE=ON <other-options>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM