1.error LNK2001 无法解析的外部符号 _vsnprintf VS2017
解决方法:在vs2015工程选项,链接器附加依赖项里面添加legacy_stdio_definitions.lib即可。
原因:出现这个问题的原因是vs2015默认编译时将许多标准库采用内联方式处理,因而没有可以链接的标准库文件,
所以要专门添加标准库文件来链接标准库中的函数。
2.error LNK2019: 无法解析的外部符号 __iob_func
解决方法:添加如下代码.cpp
/*
* 当libjpeg-turbo为vs2010编译时,vs2015下静态链接libjpeg-turbo会链接出错:找不到__iob_func,
* 增加__iob_func到__acrt_iob_func的转换函数解决此问题,
* 当libjpeg-turbo用vs2015编译时,不需要此补丁文件
*/
#if _MSC_VER>=1900
#include "stdio.h"
_ACRTIMP_ALT FILE* __cdecl __acrt_iob_func(unsigned);
#ifdef __cplusplus
extern "C"
#endif
FILE* __cdecl __iob_func(unsigned i) {
return __acrt_iob_func(i);
}
#endif /* _MSC_VER>=1900 */
3.error LNK2026 模块对于 SAFESEH 映像是不安全的。
解决方法:
a.打开该项目的“属性页”对话框。
b.单击“链接器”文件夹。
c.单击“命令行”属性页。
d.将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用。
VS2010到VS2017工程常见的兼容性问题
版权声明:本文为dangwei_90原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。