Не могу понять, на что жалуется компоновщик
При компиляции моего проекта, использующего библиотеку логирования буста, я получаю следующую ошибку компоновщика.
LNK2001 неразрешенный внешний символ "public: повышение статического класса::log::v2s_mt_nt6::sources::severity_logger_mt __cdecl my_logger::construct_logger(void)" (? Construct_logger@my_logger@@SA?AV? @ войти @ увеличить @@@ источники @v2s_mt_nt6@ лог @ импульс @@XZ)
Я не знаю, как прочитать это сообщение об ошибке с искаженными именами функций. Может ли кто-нибудь сказать мне понятным человеку, какую функцию он не может найти?
1 ответ
Поиск в Google "неразрешенного внешнего символа повышения журнала" приводит к https://www.boost.org/doc/libs/1_59_0/libs/log/doc/html/log/rationale/namespace_mangling.html (первый выделенный удар), который описывает BOOST_LOG_DYN_LINK
,
Это, кстати, также самый частый ответ на SO: https://stackru.com/search?tab=votes&q=%5Bboost-log%5D%20linker
Однако проблемы ABI могут сыграть свою роль, см., Например, Неразрешенные внешние при использовании журнала форсирования.