将 配置属性->C/C++->常规 中的 调试数据格式 修改成 程序数据库Zi ;
原因如下面的step2中几种库的区别,默认格式中mpi.h,中可能含有#pragma语句
(转载)http://www.newsmth.net/pc/pccon.php?id=10003686&nid=408850
step1. 进入项目属性
项目->属性
或 视图->属性管理器
或 右击项目名称->快捷菜单中单击属性
step2. 设定调试信息格式
配置属性->C/C++->常规
/Z7: 产生目标文件(.obj),提供调试程序使用的完整调试信息符号。这些包含了变量名称与类型、函数和行号,但是不会产生*.pdb文件;
/Zi: 除了提供完整的调试信息符号之外,还包含调试程序使用的程序数据库PDB,产生调试数据时会将类型信息存放于PDB中;
/ZI: 支持“编辑后继续”功能,使用此项调试格式时,程序代码中不能含有“#pragma optimize”预处理命令。一般来说,ZI仅支持x86编译程序,不支持64位的使用。
step3. 禁用优化
编译程序为了让程序代码执行效率更佳,会重新组织指令并调整位置,生成比较有效率的代码。然而,这种重新安排的动作,调试程序不一定能辨识,且优化还会影响局部变量的位置和函数内部的位置。因此,在调试过程中,需禁用优化。
配置属性->C/C++->优化
禁用(/Od): 表示会禁用优化,简化调试程序,以利于编译程序的处理;
最小化大小(/O1): 优化时会以最小程序代码为目标;
最大化速度(/O2): 优化时会以最快执行效率为目标;
完全优化(Ox): 默认值。
step4. 设定链接器
调试时,必须将“生成调试信息”设为“是/DEBUG”。DEBUG选项会让程序代码执行时能够创建.exe文件或DLL的调试信息,然后将调试信息放入程序数据库PDB中。当调试信息有更新时,PDB也会更新。
配置属性->链接器->调试