В нашем проекте C/C++ мы используем заголовок конфигурации (~ 1000 строк), который полон #ifdef и #define.
#if (defined(HW_1) || defined(SOME_TECHNOLOGY_SUPPORTED)) && defined(OTHER_TECHNOLOGY_SUPPORTED)
#define SOME_FEATURE_AVAILABLE
#endif
В нашей конфигурации сборки мы предварительно определяем некоторые определения, которые передаются компилятору. Это приводит к различным определениям (например, SOME_FEATURE_AVEILABLE) в нашем заголовке конфигурации.
Поскольку наш заголовок конфигурации довольно большой, в нем тоже есть некоторый беспорядок.
Есть ли альтернативы этому #define
аду?
Или есть какие-нибудь инструменты, которые помогают увидеть, в каком случае установлены определения.
Мы разрабатываем встроенную прошивку, поэтому мы не можем заменить условную компиляцию условиями выполнения.
autoconf
иautotools
.... - person Basile Starynkevitch   schedule 08.08.2013cmake
, особенно командуconfigure_file
. - person arne   schedule 08.08.2013cmake
. У него есть полезная команда для управления определениями: stackoverflow.com/a/9640357/763394 - person hich9n   schedule 08.08.2013