提示: 运行工具前,请按 设置 Vitis 环境 中所述方式设置命令 shell 或窗口。
使用
g++
编译器将主机应用的每个源文件都编译到对象文件 (.o) 中。g++ ... -c <source_file1> <source_file2> ... <source_fileN>
生成的对象文件 (.o) 与赛灵思的 Xilinx Runtime (XRT) 共享库相链接以创建可执行的主机程序。使用
-l
选项执行链接。g++ ... -l <object_file1.o> ... <object_fileN.o>
为 x86 执行编译和链接遵循标准 g++
流程。唯一要求是包含 XRT 头文件,并链接 XRT 共享库。
您可使用赛灵思的 Xilinx Runtime (XRT) 本机 C++ API 或业界标准的 OpenCL™ API 以本机 C++ 来编写主机应用。所需的 include 文件和库视您的主机应用使用的 API 以及主机代码的任意具体要求而定。
要使用此 XRT 本机 API,主机应用必须与 xrt_coreutil
库相链接。命令行使用另一组不同设置(如下示例所示)来组合编译和链接进程:
g++ -g -std=c++14 -I$XILINX_XRT/include -L$XILINX_XRT/lib -o host.exe host.cpp \
-lxrt_coreutil -pthread
编译源代码时,需以下 g++
选项:
-
-I$XILINX_XRT/include/
:XRT 的 include 目录。 -
-std=c++14
:定义 C++ 语言标准。使用 XRT 本机 C++ API 编译主机代码需要 C++ 标准和-std=c++14
或更高版本。但是,在早于 4.9.0 的 GCC 版本上,请改为使用-std=c++1y
。
链接可执行文件时,需以下 g++
选项:
-
-L$XILINX_XRT/lib/
:在 XRT 库中查找。 -
-lxrt_coreutil
:在链接期间搜索指定的库。 -
-pthread
:在链接期间搜索指定的库。
构建 OpenCL API 主机代码
Vitis 应用加速开发流程还支持使用 OpenCL API 来对主机应用进行编程。使用
g++
构建 OpenCL 应用的过程使用下列命令行:g++ -g -std=c++1y -I$XILINX_XRT/include -L$XILINX_XRT/lib -o host.exe host.cpp \
-lOpenCL -pthread
唯一区别在于对于 OpenCL API 使用 OpenCL
库,对于 XRT 本机 API 则使用 xrt_coreutil
库。
注释: 在 Vitis Accel_Examples 中,您可以看到其中添加了 xcl2.cpp 源文件和
-I../xcl2
include 语句。这些添加到主机程序的内容和 g++
命令可提供对代码示例所使用的帮助程序实用工具的访问权,但对于您自己的代码而言,通常并不需要访问这些工具。