在 windows 7 上设置带有 boost 的 Clion

Setup Clion with boost on windows 7

我需要一些简单的例子,如何在 windows 7.
下的 Clion IDE 中使用 CMake 包含 boost libraries/headers C++ 11 需要它。
Boost 库和 headers 安装在自定义目录中。
我已经为编译器安装了 cygwin x64。

一些解决方案:
我刚刚用 cygdrive 格式

包含了 boost headers
include_directories("/cygdrive/e/Libs/BoostLibs/include/boost-1_57")

但仍然不明白 Clion 从哪里获得这些库。

更好的解决方案
需要设置 var BOOST_ROOT
所以我做了(并使用了更多变量):

set(BOOST_ROOT "/cygdrive/e/Libs/BoostLibs/include/boost-1_57")

那么就可以找到并收录了

FIND_PACKAGE(Boost REQUIRED)
IF (Boost_FOUND)
    INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
    ADD_DEFINITIONS( "-DHAS_BOOST" )
ENDIF()

据我所知,CLion 没有这些库。 CMake 可以。

无论如何,我可以用这个解决你的问题:

set(Boost_Path "e:/Libs/BoostLibs/include")
set(Boost_INCLUDE_DIR "${Boost_Path}/boost_1_57_0")
find_package(Boost 1.57.0)

尝试一下,看看它是否有效,你可以使用这个:

message("Boost_INCLUDE_DIR: " ${Boost_INCLUDE_DIR })

if(Boost_FOUND)
    message(STATUS "It works!")
    include_directories(${Boost_INCLUDE_DIRS})
endif()

对于第一个,您将知道 Boost_INCLUDE_DIR 是否设置正确,而对于第二个,您将仅在找到 Boost 库时才会看到该消息,并且您将包含该目录。

如果它不能解决您的问题,请告诉我。

我正在使用 Boost 框架 v1.57.0 试用 JetBrains CLion EAP(内部版本 140.1740.3)。我通过将以下行添加到文件 "CMakeLists.txt"(默认情况下带有新的 CLion 项目)来使其工作。

set(BOOST_ROOT "C:\boost_1_57_0")
set(BOOSTROOT "C:\boost_1_57_0")

find_package(Boost 1.57.0)

if(NOT Boost_FOUND)
    message(FATAL_ERROR "Could not find boost!")
endif()

尽管我很喜欢 CLion,但我认为最好使用 Visual Studio 2013 Community Edition 在 Windows 上进行开发。设 Windows 为 Windows,Unix 为 Unix。试图打败一个成为另一个会产生比解决更多的问题。