Files
UnrealEngineUWP/Engine/Documentation/Source/Platforms/Linux/AdvancedLinuxDeveloper/LinuxCrossCompileLegacy/LinuxCrossCompileLegacy.JPN.udn
Jason Bestimt 23eb9d381e #DEV-VR - Merge MAIN @ CL 4091939
#RB:none

[CL 4094007 by Jason Bestimt in Dev-VR branch]
2018-05-25 10:16:49 -04:00

159 lines
10 KiB
Plaintext

Availability:Public
Title:Linux (レガシー) のクロス コンパイル
Crumbs:%ROOT%
Description:4.14 より前のバージョンを使用しているエンジン ユーザー向けに、Linux プラットフォーム用クロスコンパイルの設定方法を説明します。
Version:4.14
SkillLevel:Advanced
type:reference
parent:Platforms/Linux
tags:Linux
related:Programming/Development/CompilingProjects
related:Programming/Development/BuildConfigurations
related:Engine/Basics/Projects/Packaging
related:Platforms/Linux/GettingStarted
topic-image:LegacyRef_Topic.png
[TOC(start:2 end:3)]
このリファレンスは、4.14 よりも前のアンリアル エンジン 4 (UE4) のクロスコンパイル ツールの設定が必要なユーザー向けのアーカイブです。
[REGION:note]
4.14 以降のアンリアル エンジンをご使用の場合は、[](Platforms/Linux/GettingStarted) を参照してください。
[/REGION]
[EXCERPT:Why_XC]
## クロスコンパイルが必要な理由
**クロスコンパイル** により、ゲーム デベロッパーは Linux をターゲットにしながら、Windows を中心にしたワークフローで作業できるようになります。今回のクロスコンパイルは Windows のみのサポートとなりますので、
Mac ユーザーは現時点においては [native compilation](https://wiki.unrealengine.com/Building_On_Linux) を使用する必要があります。Linux-x86_64 プラットフォーム向けに、ライブラリおよびツールチェーンのサポート、テスト、および提供をしています。
## ツールチェーンの取得
以下の表で適切なツールチェーンを確認してダウンロードしてください。
| ツールチェーン | UE4 バージョン |
| -------------------------------------------------------------------------------------------------------------------------------- | -------------- |
| **-v11** [clang-5.0.0-based](http://cdn.unrealengine.com/CrossToolchain_Linux/v11_clang-5.0.0-centos7.zip) | 4.19 |
| **-v10** [clang-5.0.0-based](http://cdn.unrealengine.com/CrossToolchain_Linux/v10_clang-5.0.0-centos7.zip) | 4.18 |
| **-v9** [clang-4.0.0-based](http://cdn.unrealengine.com/CrossToolchain_Linux/v9_clang-4.0.0-centos7.zip) | 4.16 and 4.17 |
| **-v8** [clang-3.9.0-based](http://cdn.unrealengine.com/qfe/v8_clang-3.9.0-centos7.zip) | 4.14 and 4.15 |
| **-v7** [clang-3.7.0-based](https://s3.amazonaws.com/unrealengine/CrossToolchain_Linux/v7_clang-3.7.0_ld-2.24_glibc-2.12.2.zip) | 4.11 thru 4.13 |
| **-v6** [clang-3.6.0-based](https://s3.amazonaws.com/unrealengine/qfe/v6_clang-3.6.0_ld-2.24_glibc-2.12.2.zip) | 4.9 and 4.10 |
| **-v4** [clang-3.5.0-based](http://cdn.unrealengine.com/qfe/v4_clang-3.5.0_ld-2.24_glibc-2.12.2.zip) | 4.8 and earlier|
[REGION:note]
Windows Batch Files (\*.bat) は UE4 向けに AutoSDKs を設定する場合のみ必要なため、設定および設定解除は **-v9** に含まれていません。
`Setup.bat` および `Unsetup.bat` は AutoSDKs システムの一部だったため、ツールチェーンの以前のバージョンに含まれていました (現在はドキュメントはありません)。
[/REGION]
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](Programming/UnrealBuildSystem) (UBT) で (マイナーな) コード変更が必要になります。
[/EXCERPT:Why_XC]
これより先の説明は x86_64 Linux をターゲットとする開発を行うユーザーを想定していますが、ほとんどの情報は ARM のコンパイル (ツールチェーンが異なる場合を除く) にも適用できます。
異なるバージョンのツールを使用したり、別のアーキテクチャをターゲットとする場合は、[独自のツールチェーンをビルドする](https://wiki.unrealengine.com/Building_Linux_cross-toolchain) ことができます。
## ツールチェーンの設定
[Control Panel (コントロールパネル)]->[System (システム)]->[Advanced system settings (詳細システム設定)]->[Advanced (詳細)]->[Environment variables (環境変数)] を選択し、`LINUX_ROOT` という名前の環境変数を追加します。この値はツールチェーンの絶対パスです (バックスラッシュはありません)。
[REGION:raw]
![](EnvironmentVar.png)
[/REGION]
環境変数を設定したら、UE4 プロジェクトファイルを再生成 (「GenerateProjectFiles.bat」を使用) して Visual Studio を再起動します。再起動すると Win32/Win64 コンフィギュレーションに "Linux" が表示されます
(クロスコンパイル可能な状態になりました)。
## Linux 向けパッケージングの設定
[OBJECT:ToggleButtonContent]
[PARAMLITERAL:category]
BinarySourceSelect
[/PARAMLITERAL]
[PARAMLITERAL:id]
binaryinstall
[/PARAMLITERAL]
[PARAMLITERAL:active]
active_button_content
[/PARAMLITERAL]
[PARAM:content]
%binary%
[/PARAM]
[/OBJECT]
[OBJECT:ToggleButtonContent]
[PARAMLITERAL:category]
BinarySourceSelect
[/PARAMLITERAL]
[PARAMLITERAL:id]
sourceinstall
[/PARAMLITERAL]
[PARAMLITERAL:active]
[/PARAMLITERAL]
[PARAM:content]
%source%
[/PARAM]
[/OBJECT]
[VAR:source]
Linux プラットフォームをパッケージ化するためには、以下のターゲットをビルドする必要があります。
Linux 向け:
* CrashReportClient
* UE4Game (コンテンツのみのプロジェクトの場合、それ以外はプロジェクトのみをビルド)
Windows 向け:
* エディタ自体 (Unreal Editor と Unreal Frontend で Linux 対応のゲームをクック / パッケージ化するために、 Linux ターゲットモジュールビルドを取得するために必要)
* UnrealPak と ShaderCompileWorker (おそらくビルドされるでしょうが、総合的に言及)
[/VAR]
[VAR:binary]
バイナリ リリースでは、コンテンツ専用プロジェクトのパッケージのみが作成可能であることに注意してください。Linux 向けのコードベース プロジェクト (または規定外のサードパーティプラグインがあるプロジェクト) をパッケージ化する場合は、ソースビルドの設定が必要になります。
コンテンツ専用プロジェクトで問題なければ、UE4Game と CrashReportClient の Linux バイナリがバンドルされているので、何もビルドする必要はありません。
[/VAR]
## 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 プラットフォームの変更
[REGION:note]
アンリアル エンジン 4.14 では、ARM プラットフォーム向けプラットフォーム向けに新しいパッケージ方法が追加されています。
詳細は最新の [](Platforms/Linux/GettingStarted) をご覧ください。
[/REGION]
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` で実行し、上記の説明に沿って実行します。