2011-05-09 105 views
35

我想檢查一些文件的預處理器的輸出。我如何查看Xcode中的預處理器輸出?Xcode預處理器輸出

+1

由於「預處理」和「顯示彙編代碼「命令在Xcode 3中可用,我們應該向Apple提供有關Xcode 4的缺陷報告。 – MacMark 2011-05-12 09:00:00

回答

13

的Xcode 4.1現在特徵「預處理器或大會輸出」 。一切都開心!

+8

這是「產品」>「生成輸出」。 – 2011-12-01 10:15:16

+0

當我這樣做時,我似乎得到一個空文件。輸出實際上是否到了一些不明顯的地方? – Uncommon 2012-03-26 18:43:43

+3

它只會顯示成功編譯後的預處理文件 - 這打破了我的目的,即調試預處理宏... – 2012-04-09 05:37:36

0

我沒有找到任何方法。似乎在Xcode 4中缺少「預處理」功能。我沒有閱讀過蘋果公司的任何文檔,他們在這裏提到了任何有關這方面的信息。

以下URI可以幫助你:http://pilky.me/view/15

+0

當我寫上述信息時,這是非常正確的。但我明白這不是一個答案,因爲我沒有權限添加評論,並且我想讓MacMark讓他知道他正在尋找的功能缺失。好的,現在上面的信息不再適用於預處理/彙編輸出,我現在使用Xcode 4.0.2。用戶可以按照Steven Hepting的回答以及選擇菜單「Product」,然後選擇「Generate Output」選項,然後選擇「Generate Preprocessed File」或「Generate Assembly File」。希望這些信息可以幫助用戶不要誤解上述信息。 – Learner 2011-07-02 11:06:07

+0

我正在使用Xcode 4.0.2(Build 4A2002a),並沒有看到您描述的任何選項,也沒有看到「產品」菜單(沒有任何類型的「生成」項目),也沒有看到「小西裝和領結」彈出窗口史蒂文赫丁描述。 – SteveCaine 2011-07-22 18:31:46

+1

@SteveCaine:我已經更新了我的Xcode,現在檢查了我目前使用Xcode版本4.2(Build 4C104)。產品/生成輸出選項可在此處找到。對不起如果我以前的評論給你錯誤的信息。 – Learner 2011-07-25 17:26:42

3

你可以隨時運行從使用-E標誌與llvm-gcc在命令行中的文件的預處理器(這是什麼的Xcode 4使用作爲GCC的替代品)。像這樣:

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

然後你可以在文本編輯器中打開輸出文件。

+1

大多數情況下,僅靠這一點不會削減它;例如,需要定義#include路徑。您可能需要深入瞭解構建日誌以確定所有正確的命令行選項,但從理論上講,這可以幫助您。 – benzado 2011-05-25 18:31:33

40

您可以在工具欄的右上角按鈕組中選擇「顯示助手編輯器」視圖。

enter image description here

然後,在右側編輯器的頂部,你可以點擊小Related Files按鈕,然後要麼選擇PreprocessAssembly

enter image description here

可以看到兩個預處理器輸出的一個例子,生成的彙編代碼的所有側由端的位置:

enter image description here

+1

你甚至可以同時擁有第二個助手編輯器和程序集輸出。這樣一個真棒功能。 – 2011-07-01 20:13:08

+0

你使用哪個版本的Xcode? – MacMark 2011-07-02 07:53:05

+0

不是我想到的,這個特性可能在Xcode 4.2的預覽版中。 – 2011-07-05 18:23:53

1

<菜單欄> - >產品 - >執行動作 - >預處理<文件>

3

@ whoKnows出色的,簡潔的答案的名字適用於Xcode的6用戶。預處理器菜單似乎從一個Xcode版本到另一個Xcode版本遍地開花。

總括:6的XCode用戶可以通過下拉此菜單查看預處理器輸出:

Product -> Perform Action -> Preprocess 

如所附截圖所示。我在Xcode文檔中找不到這個地方。

(我希望這可以幫助我更願意簡單地添加到@ whoKnows的答案評論,但我沒有爲特權呢。)

screenshot of menu pulldowns for viewing preprocessor output