一、工程换机编译报错类似以下:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C1083 无法打开包括文件: “stdio.h”: No such file or directory VideoTransService e:\work\source_new_protocol\videotransservice\gb28181_common.h 3
错误 C1083 无法打开包括文件: “ctype.h”: No such file or directory VideoTransService c:\program files (x86)\windows kits\8.1\include\um\winnt.h 31
错误 C1083 无法打开包括文件: “corecrt.h”: No such file or directory VideoTransService c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\include\crtdefs.h 10
错误 C1083 无法打开包括文件: “corecrt.h”: No such file or directory VideoTransService c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\include\crtdefs.h 10
错误 C1083 无法打开包括文件: “corecrt.h”: No such file or directory VideoTransService c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\include\crtdefs.h 10
错误 C1083 无法打开包括文件: “io.h”: No such file or directory VideoTransService e:\work\source_new_protocol\videotransservice\log\log.cpp 2
一般为WINDOW SDK未能正确匹配造成.这时需要检查是否正确安装了SDK.
然后在工程属性中-VC++目录-包含目录及引用目录中加入类似:C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt
二、 还需要在库目录中加入类似:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x86;否则可能有以下报错:
错误 LNK1104 无法打开文件“libucrt.lib”
三、应该注意SDK版本,如版本不匹配会有类似以下报错:
1>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winnt.h(18496): error C2059: 语法错误:“字符串”
1>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winnt.h(18496): error C2334: “:”的前面有意外标记;跳过明显的函数体
1>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\winnt.h(19785): fatal error C1903: 无法从以前的错误中恢复;正在停止编译
发现过一个现象是用低版本比如8.1版本编译出的工程,如果在引用目录 里使用上述10版本以上是可编译通过的,但“WINDOWS SDK版本”须选择8.1版本,选择10.0.17763版本时会报上述错误。
四、有时用在共享 DLL 中使用 MFC时有以下错误:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误(活动) E0035 #error 指令: Please use the /MD switch for _AFXDLL C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\atlmfc\include\afxver_.h 77
错误 C1189 #error: Please use the /MD switch for _AFXDLL c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\atlmfc\include\afxver_.h 77
错误 C1189 #error: Please use the /MD switch for _AFXDLL c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\atlmfc\include\afxver_.h 77
错误 C1189 #error: Please use the /MD switch for _AFXDLL c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.16.27023\atlmfc\include\afxver_.h 77
换成:使用标准 Windows 库 就可以了。而不必真的切换MD选项。