在我的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;
}
答案 0 :(得分:2)
刚刚运行预处理器还不够好吗?例如g++ -E
?
答案 1 :(得分:1)
使用适当的定义运行编译器的预处理器。在Windows上,这将是cl /EP file
和Linux gcc -E
。最有可能的是,您还必须使用-DFoo
传递您的定义。
答案 2 :(得分:1)
我不知道你问题的答案,但Google确实:
答案 3 :(得分:0)
预处理器执行此操作。
您可以使用g++ -E somefile.cpp
查看其生成的内容。