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,编辑终端的配置文件,将交叉编译工具加入环境变量
1 2 | 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
执行以下命令
1 2 3 4 5 | cd Python-3.6.1 mkdir build_pc ./configure --prefix=$(pwd)/build_pc make python Parser/pgen make install |
执行完成后,在./build_pc目录下有安装的python文件,在./Parser/gpen存在,执行
1 | cp ./Parser/pgen build_pc/bin/ |
复制pgen至build_pc目录,这样再执行make clean 就不会失去pgen,执行make clean 清除。
5.编译和安装目标机器的Python
1 2 3 4 5 | 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