未解决的外部使用 fmt::format 到 return std::wstring

unresolved external using fmt::format to return std::wstring

我正在 Visual Studio 2019 使用 fmt 7.1.3。

我获取 fmt src 文件并制作一个静态库。

当我 link 将此 lib 转换为执行以下操作的 exe 项目时:

std::wstring out = fmt::format(L"Answer {}", 42);

它编译但失败并出现 linker 错误:

未解析的外部符号“class std::basic_string,class std::allocator > __cdecl fmt::v7::detail::vformat(class fmt::v7::basic_string_view,class fmt::v7::basic_format_args,wchar_t> >)" (??$vformat @_W$0A@@detail@v7@fmt@@YA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@ @V?$basic_string_view@_W@12@V?$basic_format_args@V?$basic_format_context@V?$buffer_appender@_W@detail@v7@fmt@ @_W@v7@fmt@@@12@@Z) 在函数“class std::basic_string,class std::allocator > __cdecl fmt::v7::format(wchar_t const (&)[10],int &&)"

如果我使用来自 fmt-6.2.1 的 src,相同的静态库配置工作正常。

感谢您的帮助。

确保在定义此函数的位置包含 fmt/format.h。引用 the docs:

fmt/format.h: the full format API providing compile-time format string checks, wide string, output iterator and user-defined type support

这是 godbolt 上的一个工作示例。