使用场景
使用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