任何用C ++去掉编译源代码的脚本

时间:2011-10-10 18:11:08

标签: c++ debugging c-preprocessor

在我的C ++文件中,我有

#ifdef DEBUG 
    then blah
#else 
    blooh. 

我想删除预处理后未编译的所有文本,因此如果未定义DEBUG,则表单的所有语句:

#ifdef DBUG 
    /* some debug code */ 
#endif

被剥离出来。

编辑:这是一个例子:

#include <iostream>
//#define DEBUG
int main(){
  #ifdef DEBUG
      cout << "In debug\n";
  #endif
     cout << "hello\n";
  return 0;
 }

运行脚本后,输出应为

#include <iostream>
//#define DEBUG
int main(){
  cout << "hello\n";
 return 0;
}

4 个答案:

答案 0 :(得分:2)

刚刚运行预处理器还不够好吗?例如g++ -E

答案 1 :(得分:1)

使用适当的定义运行编译器的预处理器。在Windows上,这将是cl /EP file和Linux gcc -E。最有可能的是,您还必须使用-DFoo传递您的定义。

答案 2 :(得分:1)

我不知道你问题的答案,但Google确实:

答案 3 :(得分:0)

预处理器执行此操作。

您可以使用g++ -E somefile.cpp查看其生成的内容。