在交叉编译python3之前需要在ubuntu主机上安装对应的x86版本,因为交叉编译时需要用到python解释器。ubuntu16.04下安装python3.10.5
tar zxvf libffi-3.4.2.tar.gz
cd libffi-3.4.2
./configure --disable-docs
make
make install
tar xvf Python-3.10.5.tar
cd Python-3.10.5
export LD_LIBRARY_PATH=/usr/local/lib
export LD_RUN_PATH=/usr/local/lib
./configure --enable-optimizations LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I /usr/local/include"
make
make install
tar zxvf libffi-3.4.2.tar.gz
./configure --prefix=/opt/Xilinx2018_zynq/zynq_Python/Modules/libffi --build=x86_64-linux-gnu --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf CC=/opt/Xilinx/SDK/2018.3/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc CXX=/opt/Xilinx/SDK/2018.3/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-g++ AR=/opt/Xilinx/SDK/2018.3/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-ar RANLIB=/opt/Xilinx/SDK/2018.3/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-ranlib --disable-docs
make
make install
tar xvf Python-3.10.5.tar
cd Python-3.10.5
export LD_LIBRARY_PATH=/opt/Xilinx2018_zynq/zynq_Python/Modules/libffi/lib
export LD_RUN_PATH=/opt/Xilinx2018_zynq/zynq_Python/Modules/libffi/lib
./configure --prefix=/opt/Xilinx2018_zynq/zynq_Python/zynq_Python3.10.5 --build=x86_64-linux-gnu --target=arm-linux-gnueabihf --host=arm-linux-gnueabihf CC=/opt/Xilinx/SDK/2018.3/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-gcc CXX=/opt/Xilinx/SDK/2018.3/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-g++ AR=/opt/Xilinx/SDK/2018.3/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-ar RANLIB=/opt/Xilinx/SDK/2018.3/gnu/aarch32/lin/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf-ranlib ac_cv_file__dev_ptmx=yes ac_cv_file__dev_ptc=yes --disable-ipv6 --with-ensurepip=yes --enable-optimizations LDFLAGS="-L/opt/Xilinx2018_zynq/zynq_Python/Modules/libffi/lib" CPPFLAGS="-I/opt/Xilinx2018_zynq/zynq_Python/Modules/libffi/lib"
make
make install
至此,python3环境已移植到目标板,运行python3命令来验证