安裝和執行 Boost(Cygwin)
(初級; IDE:CLION)
首先,從 Cygwin 映象安裝 boost:開啟 install exe,搜尋 boost,安裝軟體包。
安裝 boost 後:它將位於/usr/include/boost
。這就是一切。所有 #include
語句都是 boost 資料夾中的路徑,如:#include <boost/archive/text_oarchive.hpp>
。
一旦在 .cpp
檔案中包含你選擇的 boost 檔案,在你連結庫並告訴 cmake 搜尋下載的 boost 程式碼之前,你的程式碼仍然無法在你選擇的 IDE 中編譯。
為了讓 cmake 搜尋你的提升程式碼,
find_package(Boost 1.60.0 COMPONENTS components_you_want)
# for example:
find_package(Boost 1.60.0 COMPONENTS serialization)
然後,包括目錄:include_directories(${Boost_INCLUDE_DIRS})
最後,新增你的可執行檔案並連結庫:
add_executable(your_target ${SOURCE_FILES})
target_link_libraries(your_target ${Boost_LIBRARIES} -any_missing_boostlibs)
在啟動程式之前,通過測試來避免錯誤轉儲,以便在包含任何內容或執行程式碼之前檢視是否已找到 boost:
if (Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(YourTarget ${SOURCE_FILES})
target_link_libraries(your_target ${Boost_LIBRARIES} -missing_libs)
endif()
我包含 -missing_libs
,因為你可能遇到的錯誤是某些 boost 庫或其他可能沒有連結,你必須手動新增它 - 例如,我之前引用的連結 。
總之,最終的 CMakeLists.txt 檔案可能如下所示:
cmake_minimum_required(VERSION 3.7)
project(your_project)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
set(SOURCE_FILES main.cpp tmap.cpp tmap.h)
find_package(Boost 1.60.0 COMPONENTS serialization)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(your_project ${SOURCE_FILES})
target_link_libraries(your_project ${Boost_LIBRARIES})
endif()