报错信息及解决8:
报错信息详情:无法解析的外部符号“__iob_func”
原因:因VS不同版本之间对stdin,stdout,stder的
定义不同,导致不同VS版本之间无法正确的调用函数。
eg: * 当libjpeg-turbo为vs2010编译时,vs2015下静态链接libjpeg-turbo会链接出错:找不到iob_func, * 增加iob_func到__acrt_iob_func的转换函数解决此问题, * 当libjpeg-turbo用vs2015编译时,不需要此补丁文件
解决办法:
在自己的代码中增加了一个名为__iob_func
转换函数:
#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 */
报错信息及解决9:
报错信息详情:无法打开包括文件: “arpa/inet.h”: No such file or directory
原因:不同平台头文件有所不同
解决办法:
将
#include<arpa/inet.h>
用
#include <windows.h> #pragma comment(lib, “wsock32.lib”)
代替
报错信息及解决10:
报错信息详情:命令行错误: 指定的语言模式不兼容
原因:C/C++语言标准不对照
解决办法:属性>C/C++>语言>C/C++语言标准>更改为默认值
报错信息及解决11:
报错信息详情:fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "pch.h"”?
原因:此错误发生的原因是编译器在寻找预编译指示头文件(默认#include "stdafx.h")时,文件未预期结束。没有找到预编译指示信息的头文件"XXXX.h"。
(因为工程中的每个cpp文件属性默认都是使用预编译头(/YU)的,但是添加的第三方文件并没有 #include "stdafx.h" 预编译指示头,所以编译器在此cpp文件中一直到末尾都没有找到它)
解决办法:属性>C/C++>预编译头>不使用预编译头