Выход препроцессора на Qt Creator

Я собираю C код в Qt Creator, и мне нужно посмотреть на выход препроцессора.

Я добавил флаг-E в make, но я не вижу *.я файлы:

mingw32-make.exe -e -w in qtqt-build-desktop

пожалуйста, помогите.

2 ответов


- E-это опция gcc, а не опция make, поэтому передача ее в make ничего не сделает. Кроме того, использование-E Отлично работает для одного файла, но сломает вашу сборку как не правильную .o создается файл (он содержит предварительно обработанный источник). Что работает нормально, хотя добавляет следующее .pro файл:

QMAKE_CXXFLAGS += -save-temps

теперь, если вы создадите свой проект, предварительно обработанный источник исходного файла foo.cpp хранится как foo.второй. (протестировано с make+gcc на OS X, я бы предположил, что он работает для mingw, слишком.)

редактировать: только что узнал, что эквивалентный флаг для MSVC

QMAKE_CXXFLAGS += -P

Я мог бы заставить Qt Creator генерировать предварительно обработанные файлы, используя один (или несколько) из следующих параметров в :

QMAKE_CFLAGS_DEBUG += -E

QMAKE_CFLAGS_RELEASE += -E

QMAKE_CXXFLAGS_DEBUG += -E

QMAKE_CXXFLAGS_RELEASE += -E

однако один бит уродства заключается в том, что вместо вывода в .i файлы он поместил их в .o файлы (которые компоновщику не очень понравились...). Поскольку это, по-видимому, "одноразовая" ситуация для устранения неполадок, я не смотрел, как это очистить.

возможно, вам придется повторить "qmake" перед вами перестройте, и вам почти наверняка нужно будет запустить сборку "чистого проекта", прежде чем пытаться сгенерировать предварительно обработанный вывод.