x86 用のコンパイルおよびリンク - 2020.2 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese
ヒント: ツールを実行する前に、Vitis 環境の設定 に説明されているように、コマンド シェルまたはウィンドウを設定します。
ホスト アプリケーションの各ソース ファイルは、g++ コンパイラを使用してオブジェクト ファイル (.o) にコンパイルされます。
g++ ... -c <source_file1> <source_file2> ... <source_fileN>
生成されたオブジェクト ファイル (.o) がザイリンクス ランタイム共有ライブラリとリンクされ、実行可能なホスト プログラムが作成されます。リンクを実行するには、-l オプションを使用します。
g++ ... -l <object_file1.o> ... <object_fileN.o>

x86 用のコンパイルおよびリンクは、標準 g++ フローに従います。唯一の要件は、XRT ヘッダー ファイルを含め、XRT 共有ライブラリをリンクすることです。

ソース コードをコンパイルするには、次の g++ オプションが必要です。

  • -I$XILINX_XRT/include/: XRT インクルード ディレクトリ。
  • -I$XILINX_VIVADO/include: Vivado ツールのインクルード ディレクトリ。
  • -std=c++11: C++ 言語標準を定義します。

実行ファイルをリンクする際、次の g++ オプションが必要です。

  • -L$XILINX_XRT/lib/: XRT ライブラリを検索します。
  • -lOpenCL: リンク時に指定のライブラリを検索します。
  • -lpthread: リンク時に指定のライブラリを検索します。
  • -lrt: リンク時に指定のライブラリを検索します。
  • -lstdc++: リンク時に指定のライブラリを検索します。
注記: Vitis Examples では、xcl2.cpp ソース ファイルおよび -I../libs/xcl2 インクルード文が追加されている例があります。ホスト プログラムおよび g++ コマンドにこれらを追加すると、サンプル コードで使用されるヘルパー ユーティリティにアクセスできますが、通常は不要です。

XRT ネイティブ API の構築

XRT には、XRT サイトの https://xilinx.github.io/XRT/2020.2/html/xrt_native_apis.html で説明されるように、C 、C++、および Python 用のネイティブ XRT API が含まれます。ネイティブ XRT API を使用するには、ホスト アプリケーションが xrt_coreutil ライブラリにリンクしている必要があります。コマンド ラインでは、次のコンパイルとリンクをまとめた例で示すように、いくつかの異なる設定が使用されます。

g++ -g -std=c++14 -I$XILINX_XRT/include -L$XILINX_XRT/lib -lxrt_coreutil -lpthread \
-o host.exe host.cpp 
重要: XRT API には、-std=c++14 を使用する必要があります。