Я полностью сбит с толку, пытаясь проверить его разными способами, но он все еще безумен.
Я пытаюсь определить переменную препроцессора C "DEBUG" (#define DEBUG), чтобы активировать ведение журнала отладки в проекте с открытым исходным кодом,он использует GNU Autotools.Поэтому я вставил строку
AC_DEFINE(DEBUG, 1, [My description for DEBUG])
в configure.ac .
Но что?После регенерации config.h
autoheader && ./config.status
я смотрю на содержимое config.h и вижу это
/* My description for DEBUG */
/* #undef DEBUG */
Какого черта здесь произошло?Другие аналогичные переменные препроцессора C (по проекту) определяются таким же образом.Все они выглядели как "#define" и не комментировались, почему мой становится "#undef" и комментируется?
Так что я попробовал много способов сделать это, не только так, я подражаю тому, как другие символыПроект определен.Пробовал все виды значение , от 1 до ИСТИНА, ЛОЖЬ, все виды переменная , от "DEBUG" до "FOOBAR", "KJJJ" .... Но все равно работаетвот так, я полностью разочарован.
Больше информации:
Когда я смотрю на config.h.in , я вижу, что все строки такие:
#undef SOMEVARIABLE
(Включая мои определения AND те, которые действительно # определены в config.h .)
Когда яне запускайте autoheader и просто измените строку моей переменной в config.h.in на
#define DEBUG
, затем сгенерируйте config.h , затем мой DEBUGпеременная отображается корректно # define'd в config.h
* Autoconf версия 2.67
* Проект, над которым я работаю: ibus