Выход препроцессора на 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" перед вами перестройте, и вам почти наверняка нужно будет запустить сборку "чистого проекта", прежде чем пытаться сгенерировать предварительно обработанный вывод.