我有以下用于 C++ 开发的设置:
OS X Yosemite
CLion 140.2310.6
(JetBrains 的跨平台 C/C++-IDECMake
用作构建系统)boost
通过安装brew install boost
到/usr/local/Cellar/boost/
现在,我的目标是设置一个简单的项目并包含该boost
库。我只定义了一个test.cpp文件,如下所示:
#include <iostream>
#include <boost>
using namespace std;
int test() {
cout << "Hello, World!" << endl;
return 0;
}
我的CMakeLists.txt文件如下所示:
cmake_minimum_required(VERSION 2.8.4)
project(MyProject)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
include_directories("/usr/local/Cellar/boost/1.57.0/include/boost")
set(SOURCE_FILES main.cpp ./test.cpp)
add_executable(MyProject ${SOURCE_FILES})
构建项目时,出现以下错误:
/Users/nburk/Documents/uni/master/master_thesis/MyProject/test.cpp:2:10:致命错误:找不到“boost”文件
make[3]: *** [CMakeFiles/MyProject.dir/test.cpp.o] 错误 1 make[2]: *** [CMakeFiles/MyProject.dir/all] 错误 2 make[1]: *** [CMakeFiles/MyProject.dir/rule] 错误 2 make: *** [MyProject] 错误 2
我在这里和那里调整路径并使用add_library
and target_link_libraries
,但都没有成功构建项目。
有人可以指出正确的方向如何确保我可以将boost
s 功能包含到我的 CLion C++ 项目中吗?
更新: 感谢@Waxo 的回答,我在CMakeLists.txt文件中使用了以下代码:
set(Boost_INCLUDE_DIR /usr/local/Cellar/boost/1.57.0)
set(Boost_LIBRARY_DIR /usr/local/Cellar/boost/1.57.0/lib)
find_package(Boost COMPONENTS system filesystem REQUIRED)
include_directories(${Boost_INCLUDE_DIR})
我现在通过了未找到的文件-错误,但我得到了以下信息:
/Applications/CLion EAP.app/Contents/bin/cmake/share/cmake-3.1/Modules/FindBoost.cmake:685(文件)处的CMake错误:
无法读取文件 STRINGS 文件“/usr/local/Cellar/boost/1.57.0/boost/version.hpp”。
调用堆栈(最近调用优先):CMakeLists.txt:11 (find_package)
任何想法我仍然缺少什么?FindBoost.cmake中的引用行 (685)是:
file(STRINGS "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS REGEX "#define BOOST_(LIB_)?VERSION ")