Скачал новый буст 1.74, собрал его с помощью msvc 2019
из Developer Command Prompt for VS 2019
bootstrap.bat
b2 link=static toolset=msvc-19.20
прописал пути к инклудам и либам, пробую собрать пример, а он выдает
Error LNK1104 cannot open file 'libboost_context-vc142-mt-gd-x32-1_74.lib'
В папке stage все библиотеки имеют корректные суффиксы, соответствующие vs2019 version 16.0.0:
-vc1920-mt-gd-x32-1_74.lib
-vc1920-mt-gd-x64-1_74.lib
-vc1920-mt-x32-1_74.lib
-vc1920-mt-x64-1_74.lib
Полез смотреть как этот суффикс формируется, оказалось что в файле boost/config/auto_link.hpp не предусмотрены студии новее vc142!
Пришлось вручную прописать в C++/Preprocessor строку BOOST_LIB_TOOLSET="vc1920"; после этого все слинковалось.
Но не может же быть чтобы вот так по-дурацки все было устроено, при том что раньше все автоматически работало?
Возможно я все-же где-то неправ?
Здравствуйте, x-code, Вы писали:
XC>А где взять версию тулсета?
У 2019 штатный — это 14.2, у 2017 — 14.1
Фигурирует в пути к используемому cl.exe Например, сейчас: (... \VC\Tools\MSVC\14.27.29110\bin\Hostx64\x86)
Какие еще есть можно посмотреть в списке установленных компонент в инсталляторе. И доставить младшие по необходимости
Ну или так:
При сборке можно указать --toolset=msvc, и будет использован максимальный, какой найдется
В auto_link.hpp уже все предусмотрено: (BOOST_MSVC == _MSC_VER)
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1920)
// vc14.1:
# define BOOST_LIB_TOOLSET "vc141"
# elif defined(BOOST_MSVC)
// vc14.2:
# define BOOST_LIB_TOOLSET "vc142"