在单个头文件中处理预处理器宏?

时间:2021-07-23 05:17:37

标签: c++ cmake macros preprocessor

在我的 c++ 项目中,我有一些预处理器宏命令。例如:

#define ENABLE_PHOTO_SENSOR //will be put in three source file (.cc file)

#define SAVE_ROOT_FILE //will be placed 6 source file 

...

我是否应该将所有这些宏命令放在一个头文件中?如果我这样做,当我更改宏命令之一(例如 undef 一个宏)并再次编译程序时,包括这些头文件在内的所有源文件都会再次编译。如果我为每个宏命令使用单独的头文件,则只编译相关的源文件。但我想要的是从单个文件中控制所有宏命令,当我更改宏命令时,只更改与该宏命令相关的文件。

最后,我使用 cmake 来生成 make 文件。是否可以在构建目录中更改这些宏命令?如果可以如何?

0 个答案:

没有答案