Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
DiffEreD
1432 / 769 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
#1

Boost + Cmake + Clion - C++

27.01.2015, 11:13. Просмотров 3347. Ответов 5
Метки нет (Все метки)

Помогите мне подключить Boost к Clion на Windows. Перепробовал уже кучу вариантов - ничего не выходит, заголовки только инклудятся, а библиотеки походу не подключаются. Вот мой пример CMakeLists.txt
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
cmake_minimum_required(VERSION 2.8.4)
project(Cyberforum)
 
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
#set(CMAKE_EXE_LINKER_FLAGS -static)
 
set(SOURCE_FILES main.cpp)
add_executable(Cyberforum ${SOURCE_FILES})
 
set(Boost_Path "C:/msys64/boost")
set(Boost_INCLUDE_DIR  "${Boost_Path}/include")
set(Boost_LIBRARY_DIR  "${Boost_Path}/lib")
 
set(Boost_USE_STATIC_LIBS        ON) # only find static libs
set(Boost_USE_MULTITHREADED      ON)
#set(Boost_USE_STATIC_RUNTIME    OFF)
find_package(Boost 1.57.0)
if(Boost_FOUND)
  include_directories(${Boost_INCLUDE_DIRS})
  target_link_libraries(Cyberforum ${Boost_LIBRARY_DIR})
endif()
Я особо в Cmake не разбираюсь - все время пользовался QtCreator, - там через pro файл как то проще было.
Boost у меня находится в папке C:\msys64\boost с инклудами и либами по разным папкам.

Добавлено через 12 часов 17 минут
Кажись разобрался. Подсмотрел тут : How do you add boost libraries in CMakeLists.txt Правда, сделал через CMake в связке с QtCreator (вечером попробую с Clion). Вот такой конфиг у меня заработал:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
set(Boost_Path "C:/msys32/boost")
set(Boost_INCLUDE_DIR  "${Boost_Path}/include")
 
set(Boost_USE_STATIC_LIBS       ON)
set(Boost_USE_MULTITHREADED     ON)
set(Boost_USE_STATIC_RUNTIME   OFF)
find_package(Boost 1.56.0 COMPONENTS filesystem system)
 
if(Boost_FOUND)
  include_directories(${Boost_INCLUDE_DIRS})
  target_link_libraries(Cyberforum ${Boost_LIBRARIES})
endif()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.01.2015, 11:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Boost + Cmake + Clion (C++):

Запуск проекта в clion - C++
Всем привет! У меня такая проблема: не могу запустить проект в clio, когда я запускаю проект вылетает окно edit configuration, а я вообще...

Ошибка генерации CodeBlocks проекта CMake`ом - C++
Пожалуйста, подскажите как правильно сгенерировать CodeBlocks проект с CMake`ом. Опишу по шагам что я делал. 1) В одной папке создал...

Обертка над boost::lexical_cast для работы с unsigned типами - C++
Пару дней назад выяснилось, что boost::lexical_cast не удовлетворяет нескольким требованиям в моей программе. boost::lexical_cast...

Установка boost - C++ Builder
Добрый день, уважаемые обитатели! Прошу, помогите с установкой boost 1_53_0 на RAD XE2. Документация на сайте мне ничем не помогла и...

XE4 (Boost+ c++ 11) - C++ Builder
Что то не как не могу понять , вот страничка поддержки...

Требование boost в C++ Builder XE - C++ Builder
Всем доброго. Вот установил C++ Builder XE. Скажите C++ Builder использует boost для построения проектов? Просто boost я не...

5
Dmitriy_M
1371 / 1254 / 114
Регистрация: 20.03.2009
Сообщений: 4,477
Записей в блоге: 11
27.01.2015, 12:01 #2
C
1
2
set(Boost_Path "C:/msys32/boost")
set(Boost_INCLUDE_DIR  "${Boost_Path}/include")
Этому не место в конфине.
1
DiffEreD
1432 / 769 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
27.01.2015, 12:15  [ТС] #3
Почему? Без этого у меня Boost не находится.
0
Dmitriy_M
1371 / 1254 / 114
Регистрация: 20.03.2009
Сообщений: 4,477
Записей в блоге: 11
27.01.2015, 12:25 #4
Потому что никто не харкодит пути! У каждого буст в разных каталогах установлен.
Такие параметры передаются во время конфигурирования проекта, через cmake
Bash
1
cmake -DBoost_Path=путь ...
или cmake-gui, или где-нибудь в IDE должна быть форма настройки проекта.
1
DiffEreD
1432 / 769 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
27.01.2015, 13:04  [ТС] #5
Спасибо за подсказку. В параметрах проекта запустил CMake c параметром
Bash
1
-DBOOST_ROOT=C:/msys32/boost/include
Работает.
0
hoggy
6766 / 2951 / 507
Регистрация: 15.11.2014
Сообщений: 6,639
Завершенные тесты: 1
27.01.2015, 15:09 #6
Код
macro(add_boost_component)

     #--- в случае ошибок, расскоментируйте, 
     #---- что бы посмотреть, где ищейка пыталась его найти
#    set(Boost_DEBUG 1)

    #--- отключает msvc автоматику подключения в хэдэрах
    #--- (для большей кросс-платформы)
    add_definitions( -DBOOST_ALL_NO_LIB )

    #--- пользователь должен указать пути
    set(BOOST_ROOT ${MY_EXTERNAL_PATH_boost})
    set(BOOST_LIBRARYDIR ${BOOST_ROOT}/lib${MY_AMODEL})

#    debug_msg("BOOST_ROOT ......... ${BOOST_ROOT}")
#    debug_msg("BOOST_LIBRARYDIR ... ${BOOST_LIBRARYDIR}")

    set(Boost_USE_STATIC_LIBS   ON)
    set(Boost_USE_MULTITHREADED ON)

    #--- укажите список компонентов (regex/filesystem/etc)
    find_package(Boost COMPONENTS ${boost_COMPONENTS} REQUIRED)
    if(NOT Boost_FOUND)
        message(FATAL_ERROR "Boost NOT FOUND: " ${BOOST_ROOT} )
    endif()
    add_definitions(-DBOOST_THREAD_USE_LIB)
endmacro()


Результаты можно забрать так:

Код
    list(APPEND MT_HEADERS       ${Boost_INCLUDE_DIRS} )
    list(APPEND MT_LIBRARY_DIRS  ${Boost_LIBRARY_DIRS} )
    list(APPEND MT_DEPENDENCIES  ${Boost_LIBRARIES}    )
1
27.01.2015, 15:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.01.2015, 15:09
Привет! Вот еще темы с ответами:

Установка boost c++ builder 6 - C++ Builder
Напишите пож как правильно установить буст. Ставлю boost 1.33.0 Пишу в cmd , переход к папке буста ,папка jam_src , потом пишу build...

boost algorithm string - C++ Builder
Пробую код ( Builder2009 ) #include <iostream> #include <string> #include <boost/algorithm/string.hpp> #pragma hdrstop ...

Не линкуется FreeGLUT в CMake (CLion) - C++ IDE
Доброго времени суток. Никак не могу прилинковать FreeGLUT в CMake (который в CLion). FreeGLUT собирал в CLion, импортировав проект из...

Как OpenSSL добавить в линковку CLion (используется cmake и mingw) - C++ IDE
Приветствую, друзья. Как добавить OpenSSL в линковку проекта? Я видел FingOpenSSL (cmake), но ничего не понятно, что с этим сделать. Прошу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.