Выход препроцессора Xcode

Я хочу проверить вывод препроцессора для некоторых файлов. Как я могу просмотреть вывод препроцессора в Xcode?


person MacMark    schedule 09.05.2011    source источник
comment
Поскольку команды Preprocess и Show Assembly Code были доступны в Xcode 3, мы должны отправлять отчеты об ошибках Xcode 4 в отношении этой отсутствующей функции в Apple.   -  person MacMark    schedule 12.05.2011


Ответы (6)


Вы можете выбрать представление «Показать редактор помощника» в верхнем правом наборе кнопок на панели инструментов.

введите здесь описание изображения

Затем в верхней части правого редактора вы можете нажать маленькую кнопку Related Files, а затем выбрать либо Preprocess, либо Assembly.

введите здесь описание изображения

Здесь вы можете увидеть пример вывода препроцессора и сгенерированного ассемблерного кода:

введите здесь описание изображения

person Steven Hepting    schedule 01.07.2011
comment
Вы даже можете иметь второго помощника редактора с выводом сборки одновременно. Такая замечательная функция. - person Tim Rupe; 02.07.2011
comment
Не то чтобы я об этом думал, эта функция может быть в предварительной версии Xcode 4.2. - person Tim Rupe; 05.07.2011
comment
~ Как у вас может быть 2 помощника редактора по горизонтали?! ~ Неважно. - person Iulian Onofrei; 01.03.2019
comment
В XCode 11, когда я переключаю помощника на предварительную обработку (или сборку, если на то пошло), он дает мне вывод plist xml с версией Apple clang и ничего больше. Любые идеи? - person Nathan Friedly; 06.04.2020

В Xcode 4.1 теперь есть «Вывод препроцессора или сборки». Всем быть счастливыми!

person MacMark    schedule 01.08.2011
comment
Что находится в Продукте › Генерировать выходные данные. - person Chris Burt-Brown; 01.12.2011
comment
Кажется, я получаю пустой файл, когда делаю это. Действительно ли вывод идет в какое-то неочевидное место? - person Uncommon; 26.03.2012
comment
Он покажет предварительно обработанный файл только после успешной компиляции, что противоречит моей цели, заключающейся в отладке макросов предварительной обработки... - person Eric Chen; 09.04.2012
comment
@e_x_p: То же самое здесь. У меня проблема с связыванием в коде, сгенерированном макросом, мне бы очень хотелось посмотреть, как выглядит этот код, но у меня нет параметров, упомянутых в этом ответе, потому что я не могу успешно скомпилировать. - person Nic Foster; 12.10.2012
comment
У меня установлен XCode 4.5, в котором Preprocessed File указан в разделе Product -> Generate Output. Это отлично работает, даже если в файле есть ошибки компиляции. - person fishinear; 14.11.2012
comment
Есть ли способ получить аннотацию исходного кода Objective C с дизассемблированием? Разборка хорошая, но без контекста не очень разборчиво. - person Cris; 16.07.2013
comment
К вашему сведению, в Xcode 5 он находится в разделе «Продукт/Выполнение действия/Предварительная обработка». - person algal; 28.01.2014

Отличный и краткий ответ @whoKnows относится к пользователям Xcode 6. Меню препроцессора, кажется, блуждает повсюду от одной версии Xcode к другой.

Напомним: пользователи XCode 6 могут просматривать вывод препроцессора, раскрывая это меню:

Product -> Perform Action -> Preprocess

как показано на прилагаемом снимке экрана. Я не мог найти это нигде в документации Xcode.

(Надеюсь, это поможет. Я бы предпочел просто добавить комментарий к ответу @whoKnows, но у меня пока нет для этого прав.)

скриншот раскрывающегося меню для просмотра вывода препроцессора

person jt bullitt    schedule 20.06.2015
comment
Когда я делаю это в XCode 11, я получаю вывод plist xml с версией Apple clang и ничего больше. Любые идеи? - person Nathan Friedly; 06.04.2020

Вы всегда можете просто запустить препроцессор для файлов из командной строки, используя флаг -E с llvm-gcc (это то, что Xcode 4 использует в качестве замены для GCC). Что-то вроде этого:

llvm-gcc -E -o output.preprocess input.c

Затем вы можете просто открыть выходной файл в текстовом редакторе.

person Kyle    schedule 10.05.2011
comment
В большинстве случаев одного этого недостаточно; например, необходимо определить пути #include. Вам, вероятно, придется копаться в журнале сборки, чтобы определить все правильные параметры командной строки, но теоретически это приведет вас к цели. - person benzado; 25.05.2011

‹строка меню› -> Продукт -> Выполнить действие -> Предварительно обработать ‹имя вашего файла›

person whoKnows    schedule 19.04.2015

Я тоже не нашел способа. Кажется, что функция «Предварительная обработка» отсутствует в Xcode 4. Я не читал ни одного документа от Apple, где бы они упоминали об этом.

Вам может помочь следующий uri: http://pilky.me/view/15

person Learner    schedule 10.05.2011
comment
Когда я написал вышеуказанную информацию, это было вполне правильно. Но я понимаю, что это не был ответ, поскольку у меня не было прав на добавление комментариев, и я хотел, чтобы MacMark сообщил, что функции, которые он ищет, отсутствуют. Хорошо, теперь приведенная выше информация больше не действительна для вывода Preprocessed/Assembly, теперь я использую Xcode 4.0.2. Пользователи могут следовать ответу Стивена Хептинга, а также выбрать меню «Продукт», затем выбрать параметр «Создать вывод», затем «Создать предварительно обработанный файл» или «Создать файл сборки». Надеюсь, что эта информация поможет пользователям правильно понять приведенную выше информацию. - person Learner; 02.07.2011
comment
Я использую Xcode 4.0.2 (сборка 4A2002a) и не вижу ни одного из описанных вами вариантов, ни в меню «Продукт» (без элемента «Создать»), ни во всплывающем окне маленького костюма и галстука-бабочки, которое описывает Стивен Хептинг. - person SteveCaine; 22.07.2011
comment
@SteveCaine: я обновил свой Xcode и теперь проверил, что на данный момент я использую Xcode версии 4.2 (сборка 4C104). Здесь доступны опции Product/Generate Output. Извините, если мой предыдущий комментарий дает вам неверную информацию. - person Learner; 25.07.2011