---
title: 追加の IL2CPP コンパイラー引数
product: Unity Editor
version: '6000.0'
latest_version: '7000.0'
status: This page documents version 6000.0. The latest version is 7000.0.
canonical: https://docs.unity.com/ja-jp/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/backends/il2cpp/handling-il2cpp-additional-args
latest_url: https://docs.unity.com/ja-jp/engine/7000.0/manual/scripting/compilation-and-code-reload/script-compilation/backends/il2cpp/handling-il2cpp-additional-args.md
generated_at: 2026-11-14T04:34:32.966Z
locale: ja-jp
---

# 追加の IL2CPP コンパイラー引数

> コードから IL2CPP コンパイラーにカスタムの追加引数を提供します。

[`PlayerSettings.SetAdditionalIl2CppArgs`](/engine/6000.0/script-reference/unityeditor/playersettings/setadditionalil2cppargs.md) API を使用するか `IL2CPP_ADDITIONAL_ARGS` 環境変数を設定することで、IL2CPP コンパイラーに追加の引数を指定できます。

> **Warning:**
>
> IL2CPP コンパイラーに追加引数を渡すことは、複雑なプロジェクトで IL2CPP コード生成をデバッグおよび最適化するための実験的特徴です。[診断スイッチ](/engine/6000.0/manual/unity-editor/editor-settings-reference/preferences/editor-diagnostics.md)と同様に、Unityサポート スタッフと連携して上級者向けの開発者向けに使用することを目的としています。引数は解釈なしで C++ コンパイラーに直接渡されます。つまり、ビルドが破壊される可能性が高くなります。Unity は、この特徴を予告なく変更または削除する権利を留保します。

以下の表は、IL2CPP コンパイラーに追加のフラグを指定するために使用できる引数を示しています。

| **引数**                       | **説明**                                                                                                                                                                     |
| ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--compiler-flags="<flags>"` | C++ コンパイラーに追加フラグを渡します。`<flags>` を目的のフラグに置き換えます。例えば、`--compiler-flags=\"COMPILER_FLAG_1 COMPILER_FLAG_2\"` はコンパイラーフラグの`COMPILER_FLAG_1`と`COMPILER_FLAG_2`を C++ コンパイラーに渡します。 |
| `--linker-flags="<flags>"`   | 追加のフラグをリンカーに渡します。`<flags>` を目的のフラグに置き換えます。例えば、`--linker-flags="\LINKER_FLAG_1 LINKER_FLAG_2\"` はリンカーフラグの`LINKER_FLAG_1`と`LINKER_FLAG_2`をリンカーに渡します。                         |

複数の引数は、次のようにスペースで区切る必要があります。

```lang-cs
PlayerSettings.SetAdditionalIl2CppArgs("--compiler-flags=\"COMPILER_FLAG_1 COMPILER_FLAG_2\" --linker-flags="\LINKER_FLAG_1 LINKER_FLAG_2\"");
```

> **Note:**
>
> `SetAdditionalIl2CppArgs` を複数回呼び出すと、前に指定したフラグが上書きされます。このメソッドに空の文字列を渡し、以前に指定した追加引数を削除します。

有効なコンパイラーフラグとリンカーフラグは、そのプラットフォームで IL2CPP が使用する基本的な C++ コンパイラー (msvc または clang) によって異なります。有効なコンパイラーおよびリンカーオプションのリストについては、msvc [コンパイラー](https://learn.microsoft.com/en-us/cpp/build/reference/compiler-options?view=msvc-170)、[リンカー](https://learn.microsoft.com/en-us/cpp/build/reference/linker-options?view=msvc-170)オプション、または [clang コンパイラーおよびリンカー](https://clang.llvm.org/docs/ClangCommandLineReference.html)オプションに関するサードパーティーのドキュメントを参照してください。

## 引数が設定されているか確認##check-if-arguments-are-set

プロジェクトに追加の IL2CPP 引数が設定されている場合は、特に [Linux のクロスコンパイル](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/backends/il2cpp/linux-il2cpp-crosscompiler.md)時に、複数のプラットフォーム用にコンパイルが期待通りに動作しないことがあります。

追加の IL2CPP 引数がすでに設定されているかどうかを確認するには、以下のいずれかを実行します。

* 環境変数`IL2CPP_ADDITIONAL_ARGS`が設定されているかどうかを確認します。
* `ProjectSettings/ProjectSettings.asset`、Editor スクリプトに `additionalIl2CppArgs` という値があるかどうかをチェックします。

> **Important:**
>
> 追加の IL2CPP 引数はすべてのプラットフォームにグローバルに適用されるため、目的のプラットフォーム以外のプラットフォームに設定するとコンパイルの問題が生じる可能性があります。`IPreprocessBuildWithContext` フックを使用して、IL2CPP 引数が必要なプラットフォームにのみ設定されていることを確認します。

### IPreprocessBuildWithContext hook##ipreprocessbuildwithcontext-hook

[`IPreprocessBuildWithContext`](ScriptRef:Build.IPreprocessBuildWithContext) コールバックを使用してスクリプトをビルドするか、ビルドダイアログを使用して追加の引数を設定できます。

```lang-cs
クラス MyCustomPreprocessBuild：IPreprocessBuildWithReport
{
    public int callbackOrder { get { return 0; } }
    public void OnPreprocessBuild(BuildReport report)
    {
        string addlArgs = "";
        if (report.summary.platform == BuildTarget.StandaloneWindows || report.summary.platform == BuildTarget.StandaloneWindows64)
            addlArgs = "--compiler-flags=\"d2ssa-cfg-jt\"";
        UnityEngine.Debug.Log($"Setting Additional IL2CPP Args = \"{addlArgs}\" for platform {report.summary.platform}");
        PlayerSettings.SetAdditionalIl2CppArgs(addlArgs);
    }
}
```

## 追加リソース##additional-resources

* [Linux IL2CPP クロスコンパイラー](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/backends/il2cpp/linux-il2cpp-crosscompiler.md)
* [マネージスタックトレース](/engine/6000.0/manual/scripting/compilation-and-code-reload/script-compilation/backends/il2cpp/il2cpp-managed-stack-traces.md)
* DiscussionsIL2CPP 呼び出し]\([https://discussions.unity.com/t/how-to-add-compiler-or-linker-flags-for-il2cpp-invocation/221183)のコンパイラーまたはリンカーフラグの追加方法](https://discussions.unity.com/t/how-to-add-compiler-or-linker-flags-for-il2cpp-invocation/221183\)のコンパイラーまたはリンカーフラグの追加方法)
