系统:Ubuntu18.04
Xilinx 2021.2官方交叉编译工具链,工具链的安装过程请自行查找相关资料
0.准备工作
本文使用git clone的方式下载安装包,若网络不好会出现下载失败或者下载太慢的情况。建议在软件更新器上换源,笔者使用的是aliyun。如果还是太慢的话,建议去相应的github网站上下载好后再解压
由于libad9361-iio依赖与libiio,需要先交叉编译libiio
下载代码
git clone https://github.com/analogdevicesinc/libad9361-iio.git
编译需要使用cmake,建议跟使用libiio类似,创建一个toolchain.cmake文件
如下:
# this one is important
SET(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
#this one not so much
SET(CMAKE_SYSTEM_VERSION 1)
#CMAKE_STAGING_PREFIX用来设置安装目录
set(CMAKE_STAGING_PREFIX /opt/installs/libad9361-iio)
# 设置交叉编译工具链
SET(CMAKE_C_COMPILER /opt/Xilinx/Vitis/2021.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc)
SET(CMAKE_CXX_COMPILER /opt/Xilinx/Vitis/2021.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-g++)
# 设置交叉编译时需要查找的头文件路径,能用的最好都列上
SET(CMAKE_FIND_ROOT_PATH /opt/Xilinx/Vitis/2021.2/gnu/aarch32/lin/gcc-arm-linux-gnueabi/cortexa9t2hf-neon-xilinx-linux-gnueabi/usr/include )
#设置libad9361-iio依赖的libiio库的库文件和路径
SET(LIBIIO_LIBRARIES /opt/installs/libiio/lib/libiio.so)
SET(LIBIIO_INCLUDEDIR /opt/installs/libiio/include)
# search for programs in the build host directories
SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
#SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
# for libraries and headers in the target directories
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
---------------------------------
然后再创建一个脚本config.sh
jfd@Xilinxcompiler:ibad9361-iio$ cat config.sh
#!/bin/bash
TOOLCHAIN_PATH=/opt/project/depens/libad9361-iio/libad9361-iio
cmake -DCMAKE_TOOLCHAIN_FILE=${TOOLCHAIN_PATH}/toolchainfile.cmake .
----------
chmod +x config.sh
./config.sh
make
sudo make install
搞定!!