亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

CMake找不到Boost

CMake找不到Boost

我正在嘗試使用CMake配置項目,但是即使它們位于指定的文件夾中,它也無法找到Boost庫。我已指定Boost_INCLUDE_DIR,Boost_LIBRARYDIR并且BOOST_ROOT,但是我仍然得到一個錯誤說CMake的是無法找到的推動作用。這種錯誤的原因可能是什么?
查看完整描述

3 回答

?
交互式愛情

TA貢獻1712條經驗 獲得超3個贊

您確定自己的方法正確嗎?這個想法是,CMake的設置BOOST_INCLUDE_DIR,BOOST_LIBRARYDIR和BOOST_ROOT自動。在中執行以下操作CMakeLists.txt:


FIND_PACKAGE(Boost)

IF (Boost_FOUND)

    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})

    ADD_DEFINITIONS( "-DHAS_BOOST" )

ENDIF()

如果boost沒有安裝在默認位置并且無法被CMake找到,則可以告訴CMake在哪里尋找boost,如下所示:


SET(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} "C:/win32libs/boost")

SET(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} "C:/win32libs/boost/lib")

當然,這兩行必須在in 之前。FIND_PACKAGE(Boost)CMakeLists.txt


查看完整回答
反對 回復 2019-10-28
?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

通過讀取FindBoost.cmake文件本身,可以獲得更多幫助。它位于您的“模塊”目錄中。


一個好的開始是set(Boost_DEBUG 1)-這將吐出大量關于增強功能在哪里,正在尋找什么的信息,并可能有助于解釋為什么找不到它。


它還可以幫助您確定它是否BOOST_ROOT正常運行。


FindBoost.cmake如果boost的確切版本未在Available Versions變量中列出,有時也會出現問題。您可以通過閱讀更多有關此內容的信息FindBoost.cmake。


最后,FindBoost.cmake過去有一些錯誤。有一兩件事你可以嘗試是取的一個新版本FindBoost.cmake出來的CMake的最新版本,并把它貼到您的項目文件夾旁邊CMakeLists.txt-那么,即使你有一個舊版本的提振,它將使用新版本FindBoost.cmake是在您項目的文件夾。


祝好運。



查看完整回答
反對 回復 2019-10-28
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

我自己為這個問題苦了一段時間。事實證明,這cmake是使用Boost的命名約定來查找Boost庫文件的,其中庫名是用于構建它的編譯器版本的函數。我們的Boost庫是使用構建的GCC 4.9.1,實際上我們的系統中存在該編譯器版本;但是,GCC 4.4.7也恰好安裝了。碰巧的是,cmake的FindBoost.cmake腳本正在自動檢測GCC 4.4.7安裝而不是安裝GCC 4.9.1,因此正在尋找gcc44文件名中帶有“ ”而不是“ gcc49”的Boost庫文件。


簡單的解決方法是通過將cmake設置Boost_COMPILER為中的“ -gcc49”,強制cmake假定存在GCC 4.9 CMakeLists.txt。進行此更改后,FindBoost.cmake查找并找到了我的Boost庫文件。


查看完整回答
反對 回復 2019-10-28
  • 3 回答
  • 0 關注
  • 2989 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號