我需要一些简单的例子,如何在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()
答案 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。试图击败一个成为另一个会产生比它解决的问题更多的问题。