c++——“LNK2001 无法解析的外部符号 _printf”问题解决方案

使用场景

使用Visual Studio2019建立工程,依赖Visual Studio2015编译好的库(高版本的编译器依赖低版本编译的库)。

问题

编译vs2019工程时报如下错误:

error LNK2001: 无法解析的外部符号 _printf
error LNK2001: 无法解析的外部符号 __vscprintf
error LNK2001: 无法解析的外部符号 _fprintf
error LNK2001: 无法解析的外部符号 __vscwprintf
error LNK2001: 无法解析的外部符号 __vscprintf

原因

vs2019默认编译时将许多标准库采用内联方式处理,因而没有可以链接的标准库文件,所以要专门添加标准库文件来链接标准库中的函数。

修复方案

在“项目属性---链接器---输入---附加依赖项”中,添加legacy_stdio_definitions.lib

内联函数提升性能

内联函数是一种编译器优化手段,它将函数调用替换为函数体的代码,以减少函数调用的开销。在C++中,可以使用关键字inline来声明内联函数。需要注意的是,内联函数应该尽量简短,否则可能导致代码膨胀。编译器并非一定遵循内联请求,而是根据实际情况决定是否进行内联。

参考:https://blog.csdn.net/cscheng7907/article/details/128580429

你可能感兴趣的:(c++,c++,内联)