C++ 如何在linux上关闭gcc预处理器?

C++ 如何在linux上关闭gcc预处理器?,c++,linux,gcc,c-preprocessor,C++,Linux,Gcc,C Preprocessor,我已经在谷歌上搜索了一段时间,关闭了linux上的gcc预处理器(使用这个确切的短语),一切都无关紧要。例如,我想关闭除预处理器(与我想要的相反)或加压警告之外的所有。有人知道禁用预处理器的方法吗?我发现Facebook开发并宣称的一款速度更快,我想测试一下。我测试了lornix在评论中所说的,它很有效: 将另一个/更新的预处理器命名为“cpp”,并将其放在路径中,然后将原始cpp重命名为cpp other或cpp orig。考虑到您正试图以任何方式替换cpp,这将非常有效 将文件命名为prog

我已经在谷歌上搜索了一段时间,关闭了linux上的gcc预处理器(使用这个确切的短语),一切都无关紧要。例如,我想关闭除预处理器(与我想要的相反)或加压警告之外的所有。有人知道禁用预处理器的方法吗?我发现Facebook开发并宣称的一款速度更快,我想测试一下。

我测试了lornix在评论中所说的,它很有效:


将另一个/更新的预处理器命名为“cpp”,并将其放在路径中,然后将原始cpp重命名为cpp other或cpp orig。考虑到您正试图以任何方式替换cpp,这将非常有效

将文件命名为
program.i
而不是
program.c
,它将被GCC/Clang视为已经预处理过,并直接发送到编译器

例如:

$ cat t.i int printf(const char *f, ...); int main(){ printf("hello world\n"); } $ gcc t.i && ./a.out hello world $cat t.i int printf(常量字符*f,…); int main(){ printf(“hello world\n”); } $gcc t.i&./a.out 你好,世界
我相信,如果源代码已经被预处理,预处理器将成为不可操作的,但我可能弄错了。请命名新的/其他预处理器
cpp
,并将其放在前面的路径中?或者将原来的
cpp
重命名为
cpp other
,然后也将您的
cpp
命名。基本上只需在正常的刀具链中更换它。那是你的终极目标,不是吗?用另一个替换cpp?好的。谢谢你的回答!固体我试图在我的回答中解释一个类似的问题,但这个版本更好。那么,两年后决定否决我的答案(当场)的人是否有某种反馈?