在Windows 7上使用boost设置Clion

时间:2015-01-10 22:44:31

标签: windows boost cygwin clion

我需要一些简单的例子,如何在Windows 7下的Clion IDE中包含CMake的boost库/头文件 需要它用于C ++ 11 Boost libs和header安装在自定义目录中 我为编译器安装了cygwin x64。

一些解决方案:
我刚刚制作了带有cygdrive格式的boost标头

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

但仍然不明白Clion从哪里获取libs。

更好的解决方案
需要设置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()

3 个答案:

答案 0 :(得分:4)

我正在尝试使用Boost框架v1.57.0的JetBrains CLION EAP(build 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()

答案 1 :(得分:1)

据我所知,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 Library并且您将包含该目录时才会看到该消息。

如果它没有解决您的问题,请告诉我。

答案 2 :(得分:-3)

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