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

 

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