一、检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”
解决方案:分别验证以下项目属性
1、项目属性(ALT+F7)-->配置属性-->链接器-->高级-->目标计算机--------MachineX86(/MACHINE:X86)
2、项目属性(ALT+F7)-->配置属性-->C/C++-->代码生成-->运行库--------这里的设置需要与引入的动/静态库的设置一致
3、项目属性(ALT+F7)-->配置属性-->常规-->MFC的使用--------“共享DLL中使用MFC”这个选项报错较少:),排列组合试吧
二、RELEASE版,在静态链接库中使用MFC,链接错误,库冲突
解决办法:
1、PROJECT->SETING->C/C++->PREPROCESSOR->定义 _AFXDLL
编译错误:fatal error C1189: #error : Please use the /MD switch for _AFXDLL builds
2、C/C++->Code Generation->Multithread DLL (即实现/MD选项)
总结:EXE程序可以使用_AFXDLL指定运行时库的使用,解决静态方式连接的动/静态库,与MFC定义的库产生冲突的问题
三、warning MSB8012
warning MSB8012: TargetPath(D:\TestCode\TestProject\.\Release\TestProject.lib) 与 Library 的 OutputFile 属性值(D:\TestCode\TestProject\TestProject.lib)不匹配。
这可能导致项目生成不正确。若要更正此问题,请确保 $(OutDir)、$(TargetName) 和 $(TargetExt) 属性值与 %(Lib.OutputFile) 中指定的值匹配
解决办法:
在这设置输出文件相关信息:PROJECT->SETING->常规->输出目录、中间目录(编译产生的临时文件)、目标文件名、目标文件扩展名
在这引用设置的信息:PROJECT->SETING->链接器->常规->输出文件----$(OutDir)$(TargetName)$(TargetExt)