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