2011-09-06 30 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

默认是肯定的,但如果你想禁用它由于某种原因,这就是你要如何做到这一点。

相关问题