Python3.6.1的交叉编译

1.配置

本地系统:18.04.2-Ubuntu x86_64

目标系统:imx6q,cortex-A9

2.下载及安装交叉编译器

linaro交叉编译器下载   arm-linux-gnueabihf

执行tar -xJvf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz 解压得到gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf文件夹,将此文件夹mv到用户的Documents目录

在/home/用户/  目录vim .bashrc,编辑终端的配置文件,将交叉编译工具加入环境变量

PATH=$PATH:/home/user_name/Documents/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/
export PATH

保存并推出.bashrc,重新启动终端,输入arm-linux-gnueabihf-gcc -v测试交叉编译工具

3.下载Python3.6.1

Python源码下载,下载3.6.1版本源码Python-3.6.1.tar.xz,执行tar -xJvf Python-3.6.1.tar.xz解压

4.编译本机运行的python

执行以下命令

cd Python-3.6.1
mkdir build_pc
./configure --prefix=$(pwd)/build_pc
make python Parser/pgen
make install

 执行完成后,在./build_pc目录下有安装的python文件,在./Parser/gpen存在,执行

cp ./Parser/pgen build_pc/bin/

 复制pgen至build_pc目录,这样再执行make clean 就不会失去pgen,执行make clean 清除。

5.编译和安装目标机器的Python

mkdir build_arm
./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --host=arm-linux-gnueabihf --build=x86_64-linux --prefix=$(pwd)/build_arm ac_cv_file__dev_ptc=no ac_cv_file__dev_ptmx=no --disable-ipv6

make  HOSTPYTHON=./build_pc/bin/python3 HOSTPGEN=./build_pc/bin/pgen 
make install HOSTPYTHON=./build_pc/bin/python3

完成编译和安装之后,在当前目录的build_arm文件夹下有python文件,包括bin include lib share。

安装结束时会有一个报错出现,这是pip安装失败,不需要使用pip,因此不必理会此错误。

Exception:
Traceback (most recent call last):
... ...
TypeError: fork_exec() argument 4 must be tuple, not list

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章