У меня есть следующая настройка для разработки на С++:
-
OS X Yosemite
-
CLion 140.2310.6
(межплатформенная C/С++ - IDE с помощью JetBrains с использованиемCMake
в качестве системы сборки) - установлен
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
и target_link_libraries
, ни одна из которых не сделала проект успешной.
Может ли кто-нибудь указать в правильном направлении, как убедиться, что я могу включить boost
в мой проект CLion С++?
Update: Благодаря ответу @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})
Теперь я прошел мимо файла не найденного -error, но вместо этого получаю следующее:
Ошибка CMake в/Приложения/CLion EAP.app/Contents/bin/cmake/share/cmake-3.1/Modules/FindBoost.cmake:685 (файл):
файл STRINGS "/usr/local/Cellar/boost/1.57.0/boost/version.hpp" не может быть прочитан.
Стек вызовов (последний вызов сначала): CMakeLists.txt: 11 (Find_package)
Любые идеи, что я до сих пор не хватает? Выделенная линия (685) в FindBoost.cmake:
file(STRINGS "${Boost_INCLUDE_DIR}/boost/version.hpp" _boost_VERSION_HPP_CONTENTS REGEX "#define BOOST_(LIB_)?VERSION ")