Linux (レガシー) のクロス コンパイル

4.14 より前のバージョンを使用しているエンジン ユーザー向けに、Linux プラットフォーム用クロスコンパイルの設定方法を説明します。

Windows
MacOS
Linux

このリファレンスは、4.14 よりも前のアンリアル エンジン 4 (UE4) のクロスコンパイル ツールの設定が必要なユーザー向けのアーカイブです。

4.14 以降のアンリアル エンジンをご使用の場合は、Linux のクロスコンパイル を参照してください。

クロスコンパイルが必要な理由

クロスコンパイル により、ゲーム デベロッパーは Linux をターゲットにしながら、Windows を中心にしたワークフローで作業できるようになります。今回のクロスコンパイルは Windows のみのサポートとなりますので、 Mac ユーザーは現時点においては native compilation を使用する必要があります。Linux-x86_64 プラットフォーム向けに、ライブラリおよびツールチェーンのサポート、テスト、および提供をしています。

ツールチェーンの取得

以下の表で適切なツールチェーンを確認してダウンロードしてください。

ツールチェーン

UE4 バージョン

-v11 clang-5.0.0-based

4.19

-v10 clang-5.0.0-based

4.18

-v9 clang-4.0.0-based

4.16 and 4.17

-v8 clang-3.9.0-based

4.14 and 4.15

-v7 clang-3.7.0-based

4.11 thru 4.13

-v6 clang-3.6.0-based

4.9 and 4.10

-v4 clang-3.5.0-based

4.8 and earlier

Windows Batch Files (*.bat) は UE4 向けに AutoSDKs を設定する場合のみ必要なため、設定および設定解除は -v9 に含まれていません。 Setup.bat および Unsetup.bat は AutoSDKs システムの一部だったため、ツールチェーンの以前のバージョンに含まれていました (現在はドキュメントはありません)。

Linux ARM (https://s3.amazonaws.com/unrealengine/qfe/arm-unknown-linux-gnueabihf_v5_clang-3.5.0-ld-2.23.1-glibc-2.13.zip) 並びに (original Raspberry Pi and up) のコンパイルを可能にするライブラリとツールチェーンも提供しています。 ただし、Unreal Build Tool (UBT) で (マイナーな) コード変更が必要になります。

これより先の説明は x86_64 Linux をターゲットとする開発を行うユーザーを想定していますが、ほとんどの情報は ARM のコンパイル (ツールチェーンが異なる場合を除く) にも適用できます。 異なるバージョンのツールを使用したり、別のアーキテクチャをターゲットとする場合は、独自のツールチェーンをビルドする ことができます。

ツールチェーンの設定

[Control Panel (コントロールパネル)]->[System (システム)]->[Advanced system settings (詳細システム設定)]->[Advanced (詳細)]->[Environment variables (環境変数)] を選択し、LINUX_ROOT という名前の環境変数を追加します。この値はツールチェーンの絶対パスです (バックスラッシュはありません)。

EnvironmentVar.png

環境変数を設定したら、UE4 プロジェクトファイルを再生成 (「GenerateProjectFiles.bat」を使用) して Visual Studio を再起動します。再起動すると Win32/Win64 コンフィギュレーションに "Linux" が表示されます (クロスコンパイル可能な状態になりました)。

Linux 向けパッケージングの設定

バイナリ リリースでは、コンテンツ専用プロジェクトのパッケージのみが作成可能であることに注意してください。Linux 向けのコードベース プロジェクト (または規定外のサードパーティプラグインがあるプロジェクト) をパッケージ化する場合は、ソースビルドの設定が必要になります。 コンテンツ専用プロジェクトで問題なければ、UE4Game と CrashReportClient の Linux バイナリがバンドルされているので、何もビルドする必要はありません。

Linux プラットフォームをパッケージ化するためには、以下のターゲットをビルドする必要があります。

Linux 向け:

  • CrashReportClient

  • UE4Game (コンテンツのみのプロジェクトの場合、それ以外はプロジェクトのみをビルド)

Windows 向け:

  • エディタ自体 (Unreal Editor と Unreal Frontend で Linux 対応のゲームをクック / パッケージ化するために、 Linux ターゲットモジュールビルドを取得するために必要)

  • UnrealPak と ShaderCompileWorker (おそらくビルドされるでしょうが、総合的に言及)

Linux 向けのパッケージング

エディタでパッケージ プロジェクトを開き、[File]->[Package To]->[Linux] の順に選択する方法が最も簡単なパッケージ方法です。 (その前にクロスツールチェーンをインストールしておくこと、Linux ターゲットモジュールが対象エディタ用にビルドされていることが前提です。リストに 「Linux」 が表示されない場合は、手順の何かが未完了の可能性があります。上記を参照してください)。しばらくすると (サンプル プロジェクトは若干短めなど、対象プロジェクトにより異なります)、 パッケージ作成対象のディレクトリにゲームアセットとバイナリが表示されます。

パッケージ作成プロセスの詳細は、Show Output Log リンクから参照してください。「unable to find UnrealPak or ShaderCompileWorker (UnrealPak または ShaderCompileWorker が見つかりません)」のエラーメッセージがでてプロセスが失敗した場合は、上記のリンクでホスト (Windows) プラットフォーム向けのパッケージのビルド方法をご確認ください。

Secure copy (scp) を実行、もしくはターゲットとするマシンにコピー (そのマシンが容量不足の場合、Samba の設定方法をご存じであれば Samba share を実装すれば反復時間も削減できるので推奨します) して、 ターゲット実行ファイルを chmod +x (場所は 「LinuxNoEditor/<ProjectName>/Binaries/Linux/」ディレクトリ) に指定して実行します。

Linux-ARM プラットフォームの変更

アンリアル エンジン 4.14 では、ARM プラットフォーム向けプラットフォーム向けに新しいパッケージ方法が追加されています。 詳細は最新の Linux のクロスコンパイル をご覧ください。

Linux-ARM クロスコンパイル ツールチェーンを使用している場合は「GenerateProjectFiles.bat」 を実行する前に UE4 ソースコードで以下のファイルを編集します。

.../UnrealEngine/Engine/Source/Programs/UnrealBuildTool/Linux/UEBuildLinux.cs 

次の行をコメントアウトします。

static private string DefaultArchitecture = "x86_64-unknown-linux-gnu"; 

次のように Linux-ARM アーキテクチャの行のコメントを削除します。

//static private string DefaultArchitecture = "arm-unknown-linux-gnueabihf";

パッケージ プロジェクトを Linux-ARM プラットフォーム上で実行可能にするためには、以下の操作が別途必要です。パッケージ プロジェクトが \foo\bar\SunTemple_Linux に保存されているとした上で、以下の保存場所を開きます。

\foo\bar\SunTemple_Linux\LinuxNoEditor\Engine\Binaries\Linux

次に libopenal.so.1 を以下のバージョンから置換します。

...\UnrealEngine\Engine\Source\ThirdParty\OpenAL\1.15.1\lib\Linux\arm-unknown-linux-gnueabihf\libopenal.so

...\UnrealEngine は UE4 のソースコードの保存場所です。名前を必ず libopenal.so から libopenal.so.1 へ変更してください。

これでプロジェクトをターゲット マシンへコピーできるようになります。ターゲット実行ファイルを chmod+x で実行し、上記の説明に沿って実行します。

タグ
Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信