[英]Are unused classes compiled by Xcode when building an app?
如果在C ++中没有使用某些东西,它根本就没有编译。 iPhone也是如此吗? 如果我编译一个程序并且有未使用的类或其他东西,它会被编译或忽略吗?
这取决于您的构建设置。
在您的目标构建设置下,然后在“链接”下有一个“死代码剥离”选项。 对于使用Xcode创建的项目,它默认为yes。
这是Apple的构建设置文档的链接(摘录):
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.