注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

gmd20的个人空间

// 编程和生活

 
 
 

日志

 
 

让vc/gcc生成预编译后的源文件  

2011-11-25 17:37:36|  分类: 程序设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

有时一些宏很复杂,代码看起来不是很直观,可以配置vc让他生成经过处理后的吧宏替换后的代码。GCC也有类似的代码吧

 

 

在 “工程属性” —〉“C/C++”—〉“Project Options” 手工填入/P,然后rebuild,会产生于.cpp同名的.i文件,在这里宏被展开了。

 

 

vc2008中, 可以用上面安格办法,也可以直接在“c/c++” 里面的“Preprocessor”  -> "Generate Preprocessed File" 选 /E /P 就可以了

 

详细参考看来自

http://msdn.microsoft.com/zh-cn/library/8z9z0bx6(v=VS.90).aspx

 

此文件具有与源文件相同的基名称和一个 .i 扩展名。在此过程中,执行所有的预处理器指令,执行宏展开,并移除注释。若要在预处理输出中保留注释,请将 /C(在预处理期间保留注释) 选项与 /P 一起使用。

/P 将 #line 指令添加到输出中,位于每个包含文件的开头和结尾以及被条件编译预处理器指令移除的行的周围。这些指令将预处理文件中的行重新编号。因此,在处理后期生成的错误引用原始源文件的行号而不是预处理文件中的行的行号。若要取消生成 #line 指令,请使用 /EP(不使用 #line 指令预处理到 stdout) 和 /P

/P 选项取消编译。它不产生 .obj 文件,即使您使用 /Fo(对象文件名)。必须为编译重新提交预处理文件。/P 还可以从 /FA、/Fa(列表文件)/FA、/Fa(列表文件) 和 /Fm(命名映射文件) 选项取消输出文件。

在 Visual Studio 开发环境中设置此编译器选项

  1. 打开此项目的“属性页”对话框。有关详细信息,请参见如何:打开项目属性页

  2. 单击“C/C++”文件夹。

  3. 单击“预处理器”属性页。

  4. 修改“生成预处理文件”属性。

以编程方式设置此编译器选项

gcc 也有对应  -E  -P 选项
  评论这张
 
阅读(1012)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017