繁体   English   中英

在构建应用程序时,Xcode是否编译了未使用的类?

[英]Are unused classes compiled by Xcode when building an app?

如果在C ++中没有使用某些东西,它根本就没有编译。 iPhone也是如此吗? 如果我编译一个程序并且有未使用的类或其他东西,它会被编译或忽略吗?

这取决于您的构建设置。

在您的目标构建设置下,然后在“链接”下有一个“死代码剥离”选项。 对于使用Xcode创建的项目,它默认为yes。

在此输入图像描述

这是Apple的构建设置文档的链接(摘录):

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:不会从二进制文件中删除死代码。

默认值:NO Companions:“GCC_DEBUGGING_SYMBOLS(调试符号级别)。”前提条件:PRESERVE_DEAD_CODE_INITS_AND_TERMS

注意,文档说默认值为NO,但Xcode项目设置默认值为YES。

我相信添加到目标的任何资源都将在构建时编译和/或复制到您的应用程序包。 要编辑构建/复制的文件,可以通过单击项目,然后单击目标来修改Xcode 4中的设置。 在Build Phases下,您可以根据需要更改文件。

这是一个截图:

在此输入图像描述

在Build Settings下还有一个Dead Code Stripping设置。 这是看起来像:

在此输入图像描述

它默认为yes,但如果你想因某些原因禁用它,那就是你这样做的方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM