[英]cmake FindBoost not finding Boost libraries when building with MinGW on Windows
qtcreator
支持qmake
和cmake
進行跨平台開發,並且qmake
對於Windows
上的msvc
和MinGW
構建都可以正常工作。 但是,我只想支持一種工具: cmake
。
在linux
以及在Windows
上使用cmake
構建msvc
時, via-httplib上的CMakeLists.txt
可以正常工作。 但是,當使用cmake
在Windows
上構建MinGW
時,出現以下錯誤:
C:/ Program Files / CMake / share / cmake-3.13 / Modules / FindBoost.cmake:2100中的CMake錯誤:(消息):
找不到請求的Boost庫。升壓版本:1.69.0
增強包含路徑:D:/ DevLibraries / boost / boost_1_69_0
找不到以下Boost庫:
boost_system
找不到Boost庫。 您可能需要將BOOST_LIBRARYDIR設置為包含Boost庫的目錄,或者將BOOST_ROOT設置為Boost的位置。
在使用Visual Studio 15 2017 Win64
生成器和默認本機編譯器時,都設置並找到了BOOST_LIBRARYDIR
和BOOST_ROOT
環境變量
該錯誤消息表明,當使用MinGW Makefiles
和默認的本機編譯器時, cmake
找到BOOST_ROOT
環境變量,而不是BOOST_LIBRARYDIR
。 因此,似乎與此處描述的問題不同: Cmake找不到Boost
這是FindBoost.cmake
的錯誤嗎? 有“解決方法”嗎?
這是_boost_ARCHITECTURE_TAG
中的FindBoost.cmake
的問題,如第1518行所述。
添加了該標簽以處理Boost 1.66.0和更高版本。
它沒有將MinGW
的_boost_ARCHITECTURE_TAG
設置為-x64
,因此它正在搜索boost庫名稱,例如:
libboost_system-mgw73-mt-d-1_69.a
代替:
libboost_system-mgw73-mt-d-x64-1_69.a
有一種解決方法:將cmake
變量Boost_ARCHITECTURE
為-x64
。
注意:設置Boost_ARCHITECTURE
作為環境變量是不行的,因為FindBoost.cmake
不讀Boost_ARCHITECTURE
作為環境變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.