安裝和執行 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()