спасибо Богдан. Лучше так?
ил обновить свои библиотеки надстроек с 1.61 до 1.63, и в проекте, который я обновил для использования новых файлов, я получаю несколько новых сообщений об ошибках, которых раньше не было:
error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ)
error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAAEBVerror_category@12@XZ)
Поскольку мои библиотеки 1.63 компилируются с использованием Visual Studio 2017, мое первое предположение состоит в том, что я допустил ошибку при компиляции библиотек boost, поэтому вот общие шаги, которые я предпринимаю для чистой распаковки файлов boost:
Меню «Пуск» → Visual Studio 2017 RC → Командная строка разработчикаЯ меняю каталог, пока не окажусь на высоком уровнеboost_1_63_0
папка.я бегуbootstrap.bat
я открываюproject-config.jam
для редактированияя меняюusing msvc ;
вusing msvc : 14.1 : E:\Program Files\Microsoft Visual Studio\VC\Tools\MSVC\14.10.24911\bin\HostX64\x64\;
я открываюboost/config/auto_link.hpp
для редактированияЯ редактирую этот файл (код, указанный ниже после списка)В открытой командной строке я выполняю командуb2 architecture=x86 address-model=64 link=static threading=multi runtime-link=shared --build-type=complete stage --stagedir=stage/x64 -a
Он заканчивается следующим сообщением в конце (перечислены ниже после списка)Я пытаюсь использовать эти библиотеки с моим кодом, используя#define BOOST_LIB_DIAGNOSTIC
отслеживать, что правильные файлы используются (они есть).Я пытаюсь скомпилировать свой проект, использующий boost.asio, и получаю две нерешенные ошибки внешних символов, перечисленные выше.Кто-нибудь знает, где моя ошибка? Эти ошибки не возникают, если я использую библиотеки boost 1.61, скомпилированные с использованием Visual Studio 2015 в Visual Studio 2017 RC.
auto_link.hpp (old):
# elif defined (BOOST_MSVC)
// vc14:
# define BOOST_LIB_TOOLSET "vc140"
auto_link.hpp (новый):
# elif defined (BOOST_MSVC) && (BOOST_MSVC < 1910)
// vc14:
# define BOOST_LIB_TOOLSET "vc140"
# elif defined (BOOST_MSVC)
// vc15:
# define BOOST_LIB_TOOLSET "vc141"
Сообщение в конце процесса ускоренной компиляции:
...failed updating 6 targets...
...skipped 4 targets...
...updated 904 targets...
Библиотеки, показанные с помощью#define BOOST_LIB_DIAGNOSTIC
:
1>Linking to lib file: libboost_system-vc141-mt-1_63.lib
1>Linking to lib file: libboost_date_time-vc141-mt-1_63.lib
1>Linking to lib file: libboost_regex-vc141-mt-1_63.lib
Дайте мне знать, если нужна какая-либо другая диагностическая информация. Я попытался прокомментировать различные варианты использования библиотеки boost.asio, но только удаление заголовка полностью устранило эти проблемы (что, конечно, делало компоненты boost непригодными для использования).