我需要一些简单的例子来说明如何在windows 7下使用CMake在Clion IDE中包含boost库/ headers。
需要它的C + + 11。
Boost库和头文件被安装在自定义目录中。
我已经安装了cygwin x64编译器。
一些解决scheme
我只是提出了包含cygdrive格式的boost头文件
include_directories("/cygdrive/e/Libs/BoostLibs/include/boost-1_57")
但是还是不明白Clion从哪里获取库文件。
解决scheme更好
需要设置var BOOST_ROOT
所以我做了(并使用更多的variables):
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()
我正在用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()
据我所知,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库,你会包括目录。
让我知道如果它不能解决你的问题。
就像我喜欢CLion,IMO最好在Windows上使用Visual Studio 2013社区版进行开发。 让Windows成为Windows,让Unix成为Unix。 试图打败一个成为另一个创造更多的问题比解决。