未解析的外部符号__stdio_common_vswprintf

unresolved external symbol __stdio_common_vswprintf

提问人:SamT 提问时间:5/28/2021 更新时间:7/16/2021 访问量:4191

问:

我正在编译使用 Microsoft Dmf 框架 (DmfK.lib) 的内核模式驱动程序

在上次Visual Studio更新之后,出现了一些奇怪的链接器错误:

EmulationTargetPDO.obj : error LNK2019: unresolved external symbol __stdio_common_vswprintf referenced in function _vsnwprintf_l
Utilities.lib(savedata.obj) : error LNK2001: unresolved external symbol __stdio_common_vswprintf
DmfK.lib(DmfUtility.obj) : error LNK2001: unresolved external symbol __stdio_common_vswprintf
EmulationTargetPDO.obj : error LNK2019: unresolved external symbol __stdio_common_vsprintf referenced in function _vsnprintf_l
DmfK.lib(DmfCore.obj) : error LNK2001: unresolved external symbol __stdio_common_vsprintf
DmfK.lib(Dmf_CrashDump.obj) : error LNK2019: unresolved external symbol __stdio_common_vsprintf_s referenced in function _vsprintf_s_l

以下是我使用的软件和套件版本(显示在 VS“关于”窗口中):

  • Microsoft Visual Studio 专业版 2019 版本 16.10.0
  • Windows SDK 10.0.19041.685
  • Windows 驱动程序工具包 10.0.19030.1000

第二件奇怪的事情是我已经下载并安装了WDK 10.0.19041.685,但VS仍然显示10.0.19030.1000 ...

类似的问题可以在这里找到:编译 Windows 内核模式驱动程序 x64 时出现链接器错误,但尚未解决。

printf stdio wdk 未解析 - 外部

评论


答:

13赞 Jeffrey Tippet 5/29/2021 #1

在包含任何标头之前设置此定义:

#define _NO_CRT_STDIO_INLINE

或将其添加到编译器的命令行中:

-D_NO_CRT_STDIO_INLINE

我们(Microsoft 驱动程序团队)正在研究此问题,以了解如何消除对此类解决方法的需求。

评论

2赞 SamT 5/31/2021
非常感谢,解决方法正在起作用!