有时,为了做一些测试,不希望包含系统头文件stdio.h, 只希望用extern引用printf声明。但在VS2019可能会遇到链接错误:"error LNK2019: 无法解析的外部符号 _printf,函数 _main 中引用了该符号".
- 增加链接ucrt: #pragma comment(lib, "ucrt.lib")
--> 无效! - #define _CRT_SECURE_NO_WARNINGS 1
--> 无效! - 链接legacy_stdio_definitions.lib: #pragma comment(lib, "legacy_stdio_definitions.lib")
--> PASS.
原因是VS2019将许多标准库采用内联方式处理,即不需要特别链接ucrt,所以需要特别指定使用legacy stdio lib来让链接器通过。