FEATURE_FLAG применимо к feature_folder - впервые введено в систему сборки на основе следующих условий в make-файле верхнего уровня.
ifdef FEATURE_AAA export FEATURE_FLAG = 0 иначе экспортируйте FEATURE_FLAG = 1
CPP и файлы заголовков внутри feature_folder дополнительно включают некоторые заголовки на основе FEATURE_FLAG, как показано ниже.
например, foo. cpp включает foo.h, который имеет -
//Code
#if FEATURE_FLAG
#include <cstring>
#endif
//Code
a = memset(...);
//Code
С помощью $ (warning ...) в make-файлах, соответствующих foo. cpp и foo.h, я обеспечил, чтобы FEATURE_FLAG = 1 непосредственно перед компиляцией foo. cpp. Это означает, что параметр FEATURE_FLAG = 1 отлично работает с содержащимися в них make-файлами.
Однако компиляция foo. cpp выдает ошибку, поскольку - memset не найден.
Если я прокомментирую FEATURE_FLAG в foo.h и включу cstring по умолчанию, компиляция будет работать нормально.
Q => Почему не видит foo.h "для FEATURE_FLAG установлено значение 1?
CXX: = arm-5.3-uclib c -1.0.12 / usr / bin / arm- linux -g ++ CC: = arm-5.3-uclib c -1.0.12 / usr / bin / arm- linux -g cc