ヒント: ツールを実行する前に、Vitis 環境の設定 に説明されているように、コマンド シェルまたはウィンドウを設定します。
ホスト プログラム (host.exe
) は、次の 2 つの手順で Arm プロセッサ用にクロスコンパイラおよびリンクします。
-
g++
の GNU Arm クロスコンパイラ バージョンを使用して、host.cpp をオブジェクト ファイル (.o) にコンパイルします。$XILINX_VITIS/gnu/aarch64/lin/aarch64-linux/bin/aarch64-linux-gnu-g++ \ -D__USE_XOPEN2K8 -I$SYSROOT/usr/include/xrt -I$XILINX_VIVADO/include \ -I$SYSROOT/usr/include -c -fmessage-length=0 -std=c++14 \ --sysroot=$SYSROOT -o src/host.o ../src/host.cpp
- オブジェクト ファイルを必要なライブラリとリンクし、実行ファイルを作成します。
$XILINX_VITIS/gnu/aarch64/lin/aarch64-linux/bin/aarch64-linux-gnu-g++ \ -o host.exe src/host.o -lxilinxopencl -lpthread -lrt -lstdc++ -lgmp -lxrt_core \ -L$SYSROOT/usr/lib/ --sysroot=$SYSROOT
アプリケーションをエンベデッド プロセス用にコンパイルする場合は、アプリケーションの sysroot を指定する必要があります。sysroot は、基本システム ルート ファイル構造を定義するプラットフォームの一部です。インストール方法は、エンベデッド プラットフォームのインストール を参照してください。
重要: 上記の例では、
$SYSROOT
環境変数にエンベデッド プラットフォームの sysroot の場所が指定されていることが必要です。エッジ プラットフォーム用にホスト コードをコンパイルする際の主要な要素は、次のとおりです。
- コンパイル
-
- 必要なクロスコンパイラは、Vitis インストール ディレクトリに含まれる
aarch64-linux-gnu-g++
です。 - 必要なインクルード パスは、次のとおりです。
- $SYSROOT/usr/include
- $SYSROOT/usr/include/xrt
- $XILINX_VIVADO/include
- 必要なクロスコンパイラは、Vitis インストール ディレクトリに含まれる
- リンク
-
- $SYSROOT/usr/lib: ライブラリの場所。
- xilinxopencl: XRT で必要なライブラリ。
- pthread: XRT で必要なライブラリ。
- rt: XRT で必要なライブラリ。
- stdc++: XRT で必要なライブラリ。
- gmp: XRT で必要なライブラリ。
- xrt_core: XRT で必要なライブラリ。