2011-09-06 36 views
2

如果在C++中沒有使用某些東西,則根本不編譯它。對iPhone來說同樣如此嗎? 如果我編譯一個程序,並有未使用的類或其他東西,它會被編譯或忽略?構建應用程序時由Xcode編譯的未使用的類是什麼?

+0

...問題是? – Saphrosit

+0

你問的問題不清楚?你問是否編譯iOS代碼? – Moshe

+0

我的意思是,如果我要編譯一個程序,並有未使用的類或其他東西,它會被編譯或忽略? – anijam

回答

7

這取決於您的構建設置。

在您的目標生成設置下,然後在「鏈接」下有一個「死碼剝離」選項。對於使用Xcode創建的項目,它默認爲yes。

enter image description here

下面是來自蘋果構建設置文檔的鏈接(有節選):

http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

DEAD_CODE_STRIPPING(死代碼剝離)

說明:布爾值。

指定是否從二進制文件中除去死代碼。

先決條件:GCC_DEBUGGING_SYMBOLS $ =全

值:

是:死代碼從 二進制時的前提條件得到滿足剝離。

否:從二進制文件中未刪除死代碼 。

默認值:NO同伴:「GCC_DEBUGGING_SYMBOLS (調試符號的水平)。」前提條件爲: PRESERVE_DEAD_CODE_INITS_AND_TERMS

注意,該文件說的默認值爲NO,但Xcode項目設置的默認值到YES。

5

我相信任何添加到目標的資源都會在構建時被編譯和/或複製到應用程序包中。要編輯構建/複製哪些文件,您可以修改Xcode 4中的設置,方法是單擊項目,然後單擊目標。在構建階段下,您可以根據需要更改文件。

以下是截圖:

enter image description here

還爲死代碼生成設置下剝離的設置。這裏是什麼樣子:

enter image description here

默認是肯定的,但如果你想禁用它由於某種原因,這就是你要如何做到這一點。

相關問題