我正在尝试在visual studio-2008中以静态模式(使用/ MT)编译vc ++代码。但是我收到以下错误。
error Please use the /MD switch for _AFXDLL builds
我差点尝试各种选择。错误是由宏“_ASSERTE”引起的。但是,我不能删除我的超级纵坐标所说的那些宏。任何帮助都会得到很多感谢
答案 0 :(得分:4)
错误告诉你程序出现了问题。虽然_ASSERTE可能是最直接的原因,但这里有一个更深层次的基础问题需要解决。
您的构建脚本或源代码是#define-ing _AFXDLL,它告诉MFC您计划使用MFC的DLL版本。这也要求您使用CRT的DLL版本。但/ MT开关引入了CRT的静态版本。
我强烈推荐的解决方案是使用/ MD开关来使用CRT DLL以及MFC DLL。你没有解释为什么要尝试使用/ MT,但这样做很少是正确的选择。
或者,如果您致力于/ MT路由,则不应定义_AFXDLL。
最后,您根本没有打算使用MFC的可能性很小。在这种情况下,请停止包含MFC标头(afx * .h),错误将消失。
马丁
答案 1 :(得分:0)
您必须创建自己的_ASSERTE
版本,该版本不会调用_CrtDbgReportW
,而是调用您自己的报告功能。问题是在宏中使用_CrtDbgReportW
而没有别的。