📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 352行目: | 352行目: | ||
<br> | <br> | ||
==== AArch64 ==== | ==== AArch64 ==== | ||
以下の例では、x64のホストPCおよびAArch64のターゲットPCにおけるLLVMツールチェーンをビルドおよびインストールしている。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>LLVM / Clangをビルドする段階では、AArch64のシステムルートをオプションとして追加する必要はない。</u><br> | |||
# ビルドディレクトリの作成 | |||
mkdir build && cd build | mkdir build && cd build | ||
cmake -G Ninja | # CMakeの設定 | ||
-DCMAKE_BUILD_TYPE=Release | cmake -G Ninja \ | ||
-DCMAKE_INSTALL_PREFIX=< | -DCMAKE_BUILD_TYPE=Release \ | ||
- | -DCMAKE_INSTALL_PREFIX=<LLVMツールチェーンのインストールディレクトリ> \ | ||
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld" \ | |||
-DLLVM_TARGETS_TO_BUILD="X86;AArch64" \ | |||
-DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-linux-gnu \ | |||
-DLLVM_ENABLE_LLD=ON \ | |||
-DLLVM_ENABLE_LIBCXX=OFF \ | |||
-DLLVM_ENABLE_ASSERTIONS=OFF \ | |||
-DLLVM_TARGETS_TO_BUILD="AArch64" | -DLLVM_OPTIMIZED_TABLEGEN=ON \ | ||
-DLLVM_USE_LINKER=lld \ | |||
-DLLVM_PARALLEL_LINK_JOBS=2 \ | |||
-DLLVM_DEFAULT_TARGET_TRIPLE=aarch64 | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
../llvm | ../llvm | ||
# ビルド | |||
ninja -j$(nproc) | |||
# インストール | |||
ninja install | |||
<br> | |||
* -DCMAKE_BUILD_TYPE=Release | |||
*: 開発用途であればRelWithDebInfoでもよい。 | |||
*: <br> | |||
* -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld" | |||
*: 必要なプロジェクトを指定する。 | |||
*: lld (LLVMリンカー) はクロスコンパイルで必要となる。 | |||
*: <br> | |||
* -DLLVM_TARGETS_TO_BUILD="X86;AArch64" | |||
*: ホスト (x64) と ターゲット (AArch64) の両方を含める。 | |||
*: これにより、両方のアーキテクチャ用にコンパイルできる。 | |||
*: <br> | |||
* -DLLVM_DEFAULT_TARGET_TRIPLE=aarch64-linux-gnu | |||
*: デフォルトのターゲットをAArch64に設定する。 | |||
*: ただし、Qtのビルドシステムでは明示的に指定することが多いため、このオプションは任意である。 | |||
*: <br> | |||
* -DLLVM_ENABLE_LLD=ON | |||
*: LLDリンカーを有効化する。 | |||
*: これは、クロスリンク時に便利である。 | |||
*: <br> | |||
* -DLLVM_OPTIMIZED_TABLEGEN=ON | |||
*: ビルド時間を短縮するための最適化 | |||
*: <br> | |||
* -DLLVM_PARALLEL_LINK_JOBS=2 | |||
*: リンク処理の並列数を制限する。 | |||
*: メモリ不足を防ぐため、システムRAMが16[GB]未満の場合は1または2に設定することを推奨する。 | |||
<br> | <br> | ||
==== iOS ==== | ==== iOS ==== | ||
以下の例では、iOSをターゲットとしたLLVMをクロスビルドおよびインストールしている。<br> | 以下の例では、iOSをターゲットとしたLLVMをクロスビルドおよびインストールしている。<br> | ||