Кажется, ваша библиотека Boost.Log собрана с флагами, отличными от вашей основной программы.
Начиная с config.hpp
, мы можем видеть, что означают эти названия ABI:
v2s_mt_nt6
статически связан с поддержкой многопоточности в Windows Vista или более поздней версии (версия 6)
v2_mt_nt6
динамически связан, с поддержкой многопоточности, в Windows Vista или выше (версия 6)
Макрос BOOST_LOG_DLL
решает, какой из двух путей использовать. Определяется, если определены какие-либо из BOOST_LOG_DYN_LINK
или BOOST_ALL_DYN_LINK
.
Если вы статически связываетесь с Boost.Log (через файлы .lib
или аналогичные), вы не должны определять ни один из этих двух макросов. 1
Это означает, что вы можете удалить дополнительные определения препроцессора (поскольку вы пытаетесь связать статическую библиотеку) или использовать версию Boost для динамической библиотеки (см., Например, здесь , чтобы узнать, как установить это значение). на Windows).
1 Обратите внимание, что некоторые библиотеки напрямую игнорируют эти флаги . Boost.Log, по-видимому, является одним из немногих, которые действительно вызывают проблемы, если эти макросы неправильно настроены