为 x86 执行编译和链接 - 2023.2 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 简体中文
提示: 运行工具前,请按 设置 Vitis 环境 中所述方式设置命令 shell 或窗口。

为 x86 执行编译和链接遵循标准 g++ 流程。唯一要求是包含 XRT 头文件,并链接 XRT 共享库。使用 g++ 编译器将主机应用的每个源文件都编译到对象文件 (.o) 中。生成的对象文件 (.o) 使用 g++ -l 选项与 Xilinx Runtime (XRT) 共享库相链接以创建可执行的主机程序。

您可使用 Xilinx Runtime (XRT) 本机 C++ API 以本机 C++ 语言来编写主机应用。所需的 include 文件和库视您的主机应用使用的 API 以及主机代码的任意具体要求而定。

要使用此 XRT 本机 API,主机应用必须与 xrt_coreutil 库相链接。命令行使用另一组不同设置(如下示例所示)来组合编译和链接进程:

$CXX -std=c++17 -O0 -g -Wall -c -I./src -o host.o sw/host.cpp

使用 XRT 本机 API 编译源代码时,需以下 g++ 选项:

  • -std=c++17:定义 C++ 语言标准。使用 XRT 本机 C++ API 编译主机代码需要 C++ 标准和 -std=c++17 或更高版本。但是,在早于 4.9.0 的 GCC 版本上,请改为使用 -std=c++1y
  • -I$XILINX_XRT/include/:XRT 的 include 目录
  • -I${XILINX_VITIS}/aietools/includeAI 引擎的 include 目录
  • -I./src/aie:包含 AI 引擎计算图与内核源文件

链接可执行文件时,需以下 g++ 选项:

  • -L$XILINX_XRT/lib/:在 XRT 库中查找。
  • -lxrt_coreutil:在链接期间搜索指定的库。
  • -pthread:在链接期间搜索指定的库。

基于所需 XRT API 链接主机应用并生成可执行文件的命令:

g++ *.o -lxrt_coreutil -L${XILINX_XRT}/lib -o $(EXECUTABLE)

ADF API:

为了使用 ADF API,主机应用编译命令如下所示:

g++ -Wall -c -std=c++17 -Wno-int-to-pointer-cast -I${XILINX_XRT}/include \
-I./src/aie -I./ -I${XILINX_VITIS}/aietools/include \
-o aie_control_xrt.o ./Work/ps/c_rts/aie_control_xrt.cpp$
以下命令用于根据所需 XRT API 链接主机应用并生成可执行文件:
-ladf_api_xrt -L${XILINX_VITIS}/aietools/lib/lnx64.o