Я нашел одну возможную причину проблемы.
spdlog только для заголовка.Если у вас есть две копии журнала, одна в вашем приложении и одна в вашей dll, и вы передаете динамические ссылки из копии spdlog приложения в копию dll, и вы скомпилировали приложение и dll с различными параметрами, вы можете завершитьс двумя несовместимыми определениями функций класса spdlog.
Особые ошибочные параметры:
/Gd Uses the __cdecl calling convention (x86 only).
/GR Enables run-time type information (RTTI).
/Gr Uses the __fastcall calling convention (x86 only).
/Gv Uses the __vectorcall calling convention. (x86 and x64 only)
/vmm Declares multiple inheritance.
/vms Declares single inheritance.
/vmv Declares virtual inheritance.
/vmb Uses best base for pointers to members.
/vmg Uses full generality for pointers to members.
/Zp Packs structure members.
Каждый из этих параметров изменяет интерпретацию каждого объявления в обрабатываемых файлах.Таким образом, было нарушено одно правило определения с неопределенным поведением в качестве наказания.