Как подключить библиотеку boost в windows?

Как подключить boost? Имеем чистую windows 10. У нас нету и не будет microsoft visual studio. У нас будет mingw и CMakeLists.txt. Нужно статически подключить boost к проекту. Как это сделать быстро и элегантно ? К примеру, нужна работа с thread. Но не работает линковка:

undefined reference to `boost::thread::get_id() undefined reference to `boost::this_thread::get_id() undefined reference to `boost::thread::join_noexcept

Я попробую дать минимальный пример main.cpp.

#include <boost/thread.hpp>
int main()
{
    boost::thread some_thread=make_thread(); 
    some_thread.join(); 
    return 0;
}

И пример CMakeLists.txt.

cmake_minimum_required(VERSION 3.0)
project(Test VERSION 0.1 LANGUAGES CXX)
set(PROJECT_NAME "Test")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED on)

set(BOOST_ROOT D:/boost_1_80_0)
find_package(Boost REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wall -Wextra -Wall - 
Werror")
set(SOURCES "${CMAKE_SOURCE_DIR}/main.cpp")
add_executable(${PROJECT_NAME} ${SOURCES})
include_directories("D:/boost_1_80_0")
TARGET_LINK_LIBRARIES(${PROJECT_NAME}  ${LIBRARIES} ${Boost_LIBRARIES})

Добавлю по теме. Вот ссылка на документацию https://www.boost.org/doc/libs/1_80_0/more/getting_started/windows.html

Там написано

To compile anything in Boost, you need a directory containing the boost\ subdirectory in your #include path. Specific steps for setting up #include paths in Microsoft Visual Studio follow later in this document; if you use another IDE, please consult your product's documentation for instructions.

Я использую VSCode значит мне теперь страдать? А если я буду делать автоматическую сборку в контейнере? Очень хочется получить совет кто реально его использует в работе.

Частичный ответ. Может кому будет полезно. Нужно скачать архив буста. Разархивировать его куда угодно. Отредактировать файл bootstap.bat а именно 2 стоки должны быть такими 1) call .\build.bat gcc 2) SET TOOLSET=gcc

из cmd запустить bootstrap.bat

из cmd запустить .\b2 toolset=gcc link=static --prefix=boost_lib install

Соберутся библиотеки boost и поместятся в каталог boost_lib. Далее для CMakeList.txt можно подключить примерно так:

file(GLOB LIBRARIES
    "D:/boost_1_80_0/boost_lib/lib/libboost_thread-mgw10-mt-x64-1_80.a"
)

Осталось решить как это можно сделать проще.


Ответы (0 шт):