Если я хочу развернуть макрос C, какие есть хорошие способы сделать это (помимо отслеживания его вручную)?
Например, GTK_WIDGET_SET_FLAGS
, он использует макрос, который использует макрос, который использует макрос (или два) ...
Я хочу просто увидеть, как оно каким-то образом расширяется автоматически, вместо того, чтобы искать каждый макрос, каждый шаг пути.
UPDATE
Я пробовал cpp, но, похоже, он делал только первый проход
на:
GTK_WIDGET_SET_FLAGS(obj, 13)
Я расширил включаемый файл, а затем:
G_STMT_START{ ((GTK_OBJECT_FLAGS (obj)) |= (13)); }G_STMT_END
Это объясняется этим сообщением об ошибке, которое я получаю на stderr (при использовании -o имени файла)
gtk/gtkwidget.h:34:21: gdk/gdk.h: No such file or directory
gtk/gtkwidget.h:35:31: gtk/gtkaccelgroup.h: No such file or directory
gtk/gtkwidget.h:36:27: gtk/gtkobject.h: No such file or directory
gtk/gtkwidget.h:37:31: gtk/gtkadjustment.h: No such file or directory
gtk/gtkwidget.h:38:26: gtk/gtkstyle.h: No such file or directory
gtk/gtkwidget.h:39:29: gtk/gtksettings.h: No such file or directory
gtk/gtkwidget.h:40:21: atk/atk.h: No such file or directory
каталоги gtk, atk и gdk находятся в текущем рабочем каталоге, так как я могу разрешить cpp искать в нем?
Кстати, gcc -E
дает точно такой же вывод, как cpp
Update2:
Проблема включенного пути решается с помощью gcc -E и передачи каталога include с опцией -I