Как подключить библиотеку 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"
)
Осталось решить как это можно сделать проще.