安装和运行 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()