在我们的C/C++项目中,我们使用一个包含了1000多行#ifdef和#define的配置头文件。
在我们的构建配置中,我们预定义了一些宏定义,并传递给编译器。这会导致在我们的配置头文件中出现不同的宏定义(例如SOME_FEATURE_AVEILABLE)。
由于我们的配置头文件非常大,所以有点乱。
是否有任何替代方法来避免这种#define混乱?
或者是否有任何工具可帮助查看哪种情况下设置了哪些宏定义。
由于我们正在开发嵌入式固件,因此无法通过运行时if来替换条件编译。
#if (defined(HW_1) || defined(SOME_TECHNOLOGY_SUPPORTED)) && defined(OTHER_TECHNOLOGY_SUPPORTED)
#define SOME_FEATURE_AVAILABLE
#endif
在我们的构建配置中,我们预定义了一些宏定义,并传递给编译器。这会导致在我们的配置头文件中出现不同的宏定义(例如SOME_FEATURE_AVEILABLE)。
由于我们的配置头文件非常大,所以有点乱。
是否有任何替代方法来避免这种#define混乱?
或者是否有任何工具可帮助查看哪种情况下设置了哪些宏定义。
由于我们正在开发嵌入式固件,因此无法通过运行时if来替换条件编译。
autoconf
和autotools
.... - Basile Starynkevitchcmake
工具,特别是其中的configure_file
命令。 - arne