📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 407行目: | 407行目: | ||
<br> | <br> | ||
==== | ==== ARM EABIHF ==== | ||
ABIとは、コンパイルされたバイナリコード同士がどのように通信し合うかを定めるプロトコルである。<br> | |||
ABIは関数を呼び出す際にどのレジスタを使うか、引数をどの順序でスタックに積むか、戻り値をどこに格納するか、構造体のメモリ配置はどうするか、といった細かい取り決めを規定している。<br> | |||
<br> | |||
異なるABIでコンパイルされたライブラリとプログラムは、例え同じCPUアーキテクチャであっても正しく連携できない。<br> | |||
<br> | |||
mkdir build && cd build | mkdir build && cd build | ||
cmake -G Ninja \ | |||
-DCMAKE_BUILD_TYPE=Release \ | |||
-DCMAKE_INSTALL_PREFIX=<LLVMのんストールディレクトリ> \ | |||
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra;lld" \ | |||
-DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \ | |||
-DLLVM_ENABLE_LLD=ON \ | |||
-DLLVM_ENABLE_LIBCXX=OFF \ | |||
-DLLVM_ENABLE_ASSERTIONS=OFF \ | |||
-DLLVM_OPTIMIZED_TABLEGEN=ON \ | |||
-DLLVM_USE_LINKER=lld \ | |||
-DLLVM_PARALLEL_LINK_JOBS=2 \ | |||
../llvm | |||
ninja -j $(nproc) | ninja -j $(nproc) | ||