3

C++ で使用されていないものは、まったくコンパイルされません。iPhoneでも同じですか?プログラムをコンパイルして、未使用のクラスやその他のものがある場合、それはコンパイルまたは無視されますか?

4

2 に答える 2

9

ビルド設定によって異なります。

ターゲット ビルド設定の下にある [リンク] の下に、[デッド コード ストリッピング] のオプションがあります。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 = フル

値:

YES: 前提条件が満たされると、バイナリからデッド コードが削除されます。

NO: デッド コードはバイナリから削除されません。

デフォルト値: NO コンパニオン: 「GCC_DEBUGGING_SYMBOLS (デバッグ シンボルのレベル)」。前提条件: PRESERVE_DEAD_CODE_INITS_AND_TERMS

ドキュメントには値のデフォルトが NO であると書かれていますが、Xcode プロジェクト設定のデフォルト値は YES です。

于 2011-09-06T00:19:42.263 に答える
5

ターゲットに追加されたリソースは、ビルド時にコンパイルおよび/またはアプリケーション バンドルにコピーされると思います。ビルド/コピーするファイルを編集するには、Xcode 4 でプロジェクトをクリックしてからターゲットをクリックして設定を変更できます。Build Phases の下で、必要に応じてファイルを変更できます。

スクリーンショットは次のとおりです。

ここに画像の説明を入力

Build Settings の下に Dead Code Stripping の設定もあります。これは次のようになります。

ここに画像の説明を入力

デフォルトは yes ですが、何らかの理由で無効にしたい場合は、そのようにします。

于 2011-09-06T00:20:12.353 に答える