注:此文為ubuntu x86系統編譯程序到xilinx aarch64系統中。
一、工具準備
- x86上編譯aarch64的編譯器
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu #保證編譯器在環境變量中,嘗試執行aarch64-linux-gnu-gcc
- 目標平臺的根文件系統rootfs,如下
- 下載iperf源碼:https://github.com/esnet/iperf
二、編譯過程
- 配置變量
export CC=aarch64-linux-gnu-gcc export CXX=aarch64-linux-gnu-g++ export RD=aarch64-linux-gnu-ld export AR=aarch64-linux-gnu-ar export ANLIB=aarch64-linux-gnu-ranlib export TRIP=aarch64-linux-gnu-strip export SYSROOT="/home/edge/test/workspace/rootfs" #根文件系統所在目錄 export LDFLAGS="--sysroot=$SYSROOT -L$SYSROOT/usr/lib -L$SYSROOT/lib" export CFLAGS="--sysroot=$SYSROOT -I$SYSROOT/usr/include" export CXXFLAGS="--sysroot=$SYSROOT -I$SYSROOT/usr/include" export LDFLAGS="--sysroot=$SYSROOT -L$SYSROOT/usr/lib -L$SYSROOT/lib"
- 進入iperf3所在目錄,運行configure生成Makefile
./configure --host=aarch64-linux-gnu --prefix=/usr --with-sysroot=$SYSROOT
- 執行make生成可執行文件,執行make DESTDIR=$(pwd)/install install將?
make
?生成的二進制文件、庫文件、頭文件和配置文件復制到系統指定目錄(此處為install文件夾中)。 - 將生成的可執行文件移動到目標機器中運行。
三、注意
- 如果運行時報錯,缺少相應的庫文件,需將庫文件路徑加入環境變量LD_LIBRARY_PATH中。
export LD_LIBRARY_PATH=/soft/usr/lib:$LD_LIBRARY_PATH