可能重复: 运行GCC预处理器
是否有GCC选项使GCC预处理器生成C源代码但过滤掉不相关的源代码?
例如,C文件必须#define switch为许多不同的平台定义.我只是在一个平台上,所以我希望C预处理器过滤掉不相关的代码.GCC是否支持这一点?
#define switch
gcc c-preprocessor
有没有办法部分预处理C或C++源文件?通过"部分预处理",我的意思是扩展一些但不是全部的#include指令.例如,我想扩展#includes指向我的项目标题,但不是#includes指向其他库的标题.
我尝试通过gcc -E仅运行-I我的项目标题的-I标志而不是库的标志来执行此操作,但这不起作用,因为gcc在遇到#include时无法展开时发出错误.
gcc -E
-I
编辑:我并不关心预处理器在宏扩展方面的行为.
c c++ include c-preprocessor
c-preprocessor ×2
c ×1
c++ ×1
gcc ×1
include ×1