Сборка библиотеки с участием boost.
От: arfaa  
Дата: 11.03.20 08:20
Оценка:
Добрый день, собираю две различные библиотеки с участием буста, но при
CMAKE ..

пишет, что:
 Could NOT find Boost (missing: Boost_INCLUDE_DIR system iostreams)
  (Required is at least version "1.58.0")

Хотя в переменных окружения у меня прописаны переменные : Boost_INCLUD_DIR "Путь до папки Boost1.58" и Boost_LIBRARIE : "Путь до папки Boost1.58\libs"
Что делаю не так?
Re: Сборка библиотеки с участием boost.
От: GhostCoders Россия  
Дата: 11.03.20 08:23
Оценка:
Здравствуйте, arfaa, Вы писали:

A>Хотя в переменных окружения у меня прописаны переменные : Boost_INCLUD_DIR "Путь до папки Boost1.58" и Boost_LIBRARIE : "Путь до папки Boost1.58\libs"

A>Что делаю не так?
Нужно прописать CMake-ские переменные (ключ -D для cmake), а не переменные окружения
Третий Рим должен пасть!
Re: Сборка библиотеки с участием boost.
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.03.20 08:24
Оценка:
Здравствуйте, arfaa, Вы писали:

A>Что делаю не так?


Укажи вручную в cmake-gui или параметром командной строки в cmake
Re[2]: Сборка библиотеки с участием boost.
От: arfaa  
Дата: 11.03.20 08:34
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, arfaa, Вы писали:


A>>Что делаю не так?


N>Укажи вручную в cmake-gui или параметром командной строки в cmake


Указад, но все равно не собирается:
Re[2]: Сборка библиотеки с участием boost.
От: arfaa  
Дата: 11.03.20 08:34
Оценка:
Здравствуйте, GhostCoders, Вы писали:

GC>Здравствуйте, arfaa, Вы писали:


A>>Хотя в переменных окружения у меня прописаны переменные : Boost_INCLUD_DIR "Путь до папки Boost1.58" и Boost_LIBRARIE : "Путь до папки Boost1.58\libs"

A>>Что делаю не так?
GC>Нужно прописать CMake-ские переменные (ключ -D для cmake), а не переменные окружения
Спасибо за ответ, но можно поподробнее, что и куда прописывать?
Re[3]: Сборка библиотеки с участием boost.
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.03.20 08:42
Оценка:
Здравствуйте, arfaa, Вы писали:

A>Указад, но все равно не собирается:


Так понять сложно, а что в самом CMakeLists.txt написано? Обычно там должно быть нечто похожее:

set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.58.0 REQUIRED)


Далее, что указано в cmake_minimum_required? Надо помнить, что желаемая версия, там указанная, и будет применяться при сборке, то есть все прошлые баги особенности CMake включатся, даже если они изменены в более новых версиях.

Если не получается, то попробуй обновить boost, обновить cmake и указать в cmake_minimum_required текущую версию cmake.
Re[4]: Сборка библиотеки с участием boost.
От: arfaa  
Дата: 11.03.20 08:44
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, arfaa, Вы писали:


A>>Указад, но все равно не собирается:


N>Так понять сложно, а что в самом CMakeLists.txt написано? Обычно там должно быть нечто похожее:

N>

N>set(Boost_USE_STATIC_LIBS ON)
N>set(Boost_USE_MULTITHREADED ON)
N>set(Boost_USE_STATIC_RUNTIME OFF)
N>find_package(Boost 1.58.0 REQUIRED)


N>Далее, что указано в cmake_minimum_required? Надо помнить, что желаемая версия, там указанная, и будет применяться при сборке, то есть все прошлые баги особенности CMake включатся, даже если они изменены в более новых версиях.


N>Если не получается, то попробуй обновить boost, обновить cmake и указать в cmake_minimum_required текущую версию cmake.


cmake_minimum_required(VERSION 3.2)
project (TwitterLib LANGUAGES CXX)

# BUILD OPTIONS
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
set(CMAKE_BUILD_TYPE Debug)
# set(CMAKE_BUILD_TYPE Release)
add_compile_options(-Wall)

enable_testing()
include(GNUInstallDirs)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# EXTERNAL LIBRARIES
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
find_package(Boost 1.58.0 REQUIRED COMPONENTS system iostreams)
add_library(boost INTERFACE IMPORTED)
set_property(TARGET boost PROPERTY
    INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR})
set_property(TARGET boost PROPERTY
    INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES})


# SUBDIRECTORIES
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
add_subdirectory(networklib)
add_subdirectory(twitterlib)
add_subdirectory(demos)
add_subdirectory(tests)

# CLANG TIDY
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
add_custom_target(compile_commands ALL
    COMMAND [ -f ${CMAKE_SOURCE_DIR}/build/compile_commands.json ] &&
        mv ${CMAKE_SOURCE_DIR}/build/compile_commands.json
        ${CMAKE_SOURCE_DIR}/compile_commands.json || :)

# DOXYGEN
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# Doxyfile in project/doc : make doc
find_package(Doxygen)
if(DOXYGEN_FOUND)
    add_custom_target(doc
        ${DOXYGEN_EXECUTABLE} ${CMAKE_SOURCE_DIR}/doc/Doxyfile
        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/doc
        COMMENT "Generating API documentation with Doxygen" VERBATIM)
endif(DOXYGEN_FOUND)
Re[5]: Сборка библиотеки с участием boost.
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.03.20 08:50
Оценка:
Здравствуйте, arfaa, Вы писали:

A>
A>find_package(Boost 1.58.0 REQUIRED COMPONENTS system iostreams)
A>add_library(boost INTERFACE IMPORTED)
A>set_property(TARGET boost PROPERTY
A>    INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR})
A>set_property(TARGET boost PROPERTY
A>    INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES})
A>


Попробуй все варианты. Не знаю, где и какой у тебя boost, я сам собираю себе тот, который мне нужен. Соответственно опции Boost_USE_STATIC_LIBS, Boost_USE_MULTITHREADED, Boost_USE_STATIC_RUNTIME выставлены не просто так, а именно те варинты, которые собраны именно у меня. Попробуй их установить у себя такими, каким у тебя собран сам boost.

N>>Далее, что указано в cmake_minimum_required?

А у тебя какой cmake? Версия 3.2 достаточно старая, также как и Boost 1.58.0. Есть возможность использовать поновее, уже много лет прошло с тех релизов.
Re[6]: Сборка библиотеки с участием boost.
От: arfaa  
Дата: 11.03.20 08:53
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, arfaa, Вы писали:


A>>
A>>find_package(Boost 1.58.0 REQUIRED COMPONENTS system iostreams)
A>>add_library(boost INTERFACE IMPORTED)
A>>set_property(TARGET boost PROPERTY
A>>    INTERFACE_INCLUDE_DIRECTORIES ${Boost_INCLUDE_DIR})
A>>set_property(TARGET boost PROPERTY
A>>    INTERFACE_LINK_LIBRARIES ${Boost_LIBRARIES})
A>>


N>Попробуй все варианты. Не знаю, где и какой у тебя boost, я сам собираю себе тот, который мне нужен. Соответственно опции Boost_USE_STATIC_LIBS, Boost_USE_MULTITHREADED, Boost_USE_STATIC_RUNTIME выставлены не просто так, а именно те варинты, которые собраны именно у меня. Попробуй их установить у себя такими, каким у тебя собран сам boost.


N>>>Далее, что указано в cmake_minimum_required?

N>А у тебя какой cmake? Версия 3.2 достаточно старая, также как и Boost 1.58.0. Есть возможность использовать поновее, уже много лет прошло с тех релизов.

CMake поменял на 3.16.4
Boost собирал тоже сам 1.58.0
Re: Сборка библиотеки с участием boost.
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 11.03.20 09:05
Оценка: :)
Здравствуйте, arfaa, Вы писали:

A>Хотя в переменных окружения у меня прописаны переменные : Boost_INCLUD_DIR "Путь до папки Boost1.58" и Boost_LIBRARIE : "Путь до папки Boost1.58\libs"

A>Что делаю не так?
платформа виндовс?
Sic luceat lux!
Re[3]: Сборка библиотеки с участием boost.
От: GhostCoders Россия  
Дата: 11.03.20 09:32
Оценка:
Здравствуйте, arfaa, Вы писали:

GC>>Нужно прописать CMake-ские переменные (ключ -D для cmake), а не переменные окружения

A>Спасибо за ответ, но можно поподробнее, что и куда прописывать?
Переменные смаке можно задать через аргументы командной строки, а можно через cmake-gui, как уже подсказал Nuzhny.
Просто cmake-gui представляет более удобный графический способ задать их, и вызывает cmake с ключом -D, типа
cmake -D Boost_INCLUDE_DIR="C:\Users/m.s/Programs/boost_158_0" ..


Стоп, а почему не указываете путь к include?
Типа, C:/Boost/include/boost-1_71

В подпапке boost есть подпапка include/
Третий Рим должен пасть!
Re[4]: Сборка библиотеки с участием boost.
От: GhostCoders Россия  
Дата: 11.03.20 09:35
Оценка:
Здравствуйте, GhostCoders, Вы писали:

GC>Стоп, а почему не указываете путь к include?

GC>Типа, C:/Boost/include/boost-1_71

GC>В подпапке boost есть подпапка include/

Допустим у меня буст находится в папке C:\Boost
Однако я указываю значение переменной Boost_INCLUDE_DIR как C:/Boost/include/boost-1_71
То есть внутри C:\Users/m.s/Programs/boost_158_0 должна быть папка C:/Users/m.s/Programs/boost_158_0/include/boost-1_58
Вот ее и надо указівать. Плюс еще слеши лучше правые использовать (в одном стиле).
Третий Рим должен пасть!
Re: Сборка библиотеки с участием boost.
От: Muxa  
Дата: 11.03.20 09:36
Оценка:
A>Хотя в переменных окружения у меня прописаны переменные : Boost_INCLUD_DIR "Путь до папки Boost1.58" и Boost_LIBRARIE : "Путь до папки Boost1.58\libs"
A>Что делаю не так?
У тебя опечатки в названиях переменных.
Re[2]: Сборка библиотеки с участием boost.
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 11.03.20 09:44
Оценка: :)
Здравствуйте, Muxa, Вы писали:

A>>Хотя в переменных окружения у меня прописаны переменные : Boost_INCLUD_DIR "Путь до папки Boost1.58" и Boost_LIBRARIE : "Путь до папки Boost1.58\libs"

A>>Что делаю не так?
M>У тебя опечатки в названиях переменных.
У него в цмейк файле всё нормально.
Sic luceat lux!
Отредактировано 11.03.2020 9:51 Kernan . Предыдущая версия .
Re[2]: Сборка библиотеки с участием boost.
От: arfaa  
Дата: 11.03.20 10:04
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Здравствуйте, arfaa, Вы писали:


A>>Хотя в переменных окружения у меня прописаны переменные : Boost_INCLUD_DIR "Путь до папки Boost1.58" и Boost_LIBRARIE : "Путь до папки Boost1.58\libs"

A>>Что делаю не так?
K>платформа виндовс?

yes
Re[5]: Сборка библиотеки с участием boost.
От: arfaa  
Дата: 11.03.20 10:09
Оценка:
Здравствуйте, GhostCoders, Вы писали:

GC>Здравствуйте, GhostCoders, Вы писали:


GC>>Стоп, а почему не указываете путь к include?

GC>>Типа, C:/Boost/include/boost-1_71

GC>>В подпапке boost есть подпапка include/

GC>Допустим у меня буст находится в папке C:\Boost
GC>Однако я указываю значение переменной Boost_INCLUDE_DIR как C:/Boost/include/boost-1_71
GC>То есть внутри C:\Users/m.s/Programs/boost_158_0 должна быть папка C:/Users/m.s/Programs/boost_158_0/include/boost-1_58
GC>Вот ее и надо указівать. Плюс еще слеши лучше правые использовать (в одном стиле).

у меня нет папки инклуд вот:
Re[6]: Сборка библиотеки с участием boost.
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.03.20 10:13
Оценка:
Здравствуйте, arfaa, Вы писали:

A>у меня нет папки инклуд вот:


Тебе надо сделать после сборки install
Re[7]: Сборка библиотеки с участием boost.
От: GhostCoders Россия  
Дата: 11.03.20 11:29
Оценка:
Здравствуйте, Nuzhny, Вы писали:

N>Тебе надо сделать после сборки install

Верно. b2 install кажется?

b2 install --prefix=PREFIX where PREFIX is the directory where you want Boost

https://www.boost.org/doc/libs/1_62_0/more/getting_started/windows.html#install-boost-build
Третий Рим должен пасть!
Re[2]: Сборка библиотеки с участием boost.
От: c-smile Канада http://terrainformatica.com
Дата: 11.03.20 22:57
Оценка:
Здравствуйте, Muxa, Вы писали:

A>>Хотя в переменных окружения у меня прописаны переменные : Boost_INCLUD_DIR "Путь до папки Boost1.58" и Boost_LIBRARIE : "Путь до папки Boost1.58\libs"

A>>Что делаю не так?
M>У тебя опечатки в названиях переменных.

У него румынская версия BOOST. Ненуачё?
Re: Сборка библиотеки с участием boost.
От: Bork СССР  
Дата: 13.03.20 08:15
Оценка:
Здравствуйте, arfaa, Вы писали:

A>Добрый день, собираю две различные библиотеки с участием буста, но при

A>
A>CMAKE ..
A>

A>пишет, что:
A>
A> Could NOT find Boost (missing: Boost_INCLUDE_DIR system iostreams)
A>  (Required is at least version "1.58.0")
A>

A>Хотя в переменных окружения у меня прописаны переменные : Boost_INCLUD_DIR "Путь до папки Boost1.58" и Boost_LIBRARIE : "Путь до папки Boost1.58\libs"
A>Что делаю не так?

cmake .... -DBoost_DEBUG=ON
и увидишь что cmake ищет и где
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.