arm-linux-gcc-4.4.3交叉编译python2.7.3并移植到ARM

1、编译环境

Linux系统版本:Ubuntu 12.04
交叉编译工具:arm-linux-gcc-4.4.3
嵌入式linux内核版本:Linux 3.8.0


2、交叉编译Python-2.7.3

1、下载python-2.7.3源码及补丁(补丁被打包在Python-2.7.3.tar.bz2里):
http://download.csdn.net/detail/sinat_36684217/9884409

2、解压缩包,生成一个名为python-2.7.3的目录
tar jxvf Python-2.7.3.tar.bz2

3、进入Python-2.7.3目录
cd Python-2.7.3/

4、运行配置运行配置文件,生成必要的Makefile等文件
./configure

5、编译PC版 python Parser/pgen
make python Parser/pgen

6、将生成的PC版移动至hostpython
mv python hostpython

7、将生成的PC版解释器移动至Parser/hostpgen
mv Parser/pgen Parser/hostpgen

8、清除不必要的文件
make distclean

9、打补丁Python-2.7.3-xcompile.patch(补丁已放在python-2.7.3目录下了)
patch -p1 < Python-2.7.3-xcompile.patch
这里写图片描述

10、Python-2.7.3交叉编译,并生成_install文件

echo ac_cv_file__dev_ptmx=no > config.site

echo ac_cv_file__dev_ptc=no >> config.site

export CONFIG_SITE=config.site

./configure CC=arm-linux-gcc CXX=arm-linux-g++ AR=arm-linux-ar RANLIB=arm-linux-ranlib LD=arm-linux-ld NM=arm-linux-nm --host=arm-linux --build=x86_64-linux --disable-ipv6

make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen BLDSHARED="arm-linux-gcc -shared" CROSS_COMPILE=arm-linux- CROSS_COMPILE_TARGET=yes HOSTARCH=arm-linux BUILDARCH=x86_64-linux

make install HOSTPYTHON=./hostpython BLDSHARED="arm-linux-gcc -shared" CROSS_COMPILE=arm-linux- CROSS_COMPILE_TARGET=yes prefix=$PWD/_install

11、_install目录下,有四个子目录,而在子目录bin下,就有ARM系统可执行Python二进制文件。
arm-linux-gcc-4.4.3交叉编译python2.7.3并移植到ARM_第1张图片


3、移植Python-2.7.3到ARM系统

1、将_install目录拷贝到ARM的文件系统中(以下操作是放于ARM根目录下),随意位置,然后进入_install/bin目录下,运行Python,若能进入Python交互界面,则说明交叉编译的Python2.7正确
cd _install/bin/

./python2.7

2、移植python2.7为ARM的默认python解释器(注意这也是在ARM上操作)

(1)进入_install/bin目录下,并将所有文件复制到ARM系统下的/usr/bin/下
cp ./* /usr/bin/

(2)进入_install/include目录下,并将所有文件复制到ARM系统下的/usr/include/下
cd _install/include

cp ./* /usr/include/

(3)进入_install/lib目录下,并将所有文件复制到ARM系统下的/usr/lib/下
cd _install/lib

cp ./* /usr/lib/

(4)进入_install/share目录下,并将所有文件复制到ARM系统下的/usr/share/下
cd _install/share

cp ./* /usr/share/

(5)进入/usr/bin/目录下,将默认的python替换为python2.7
cd /usr/bin/

ln -s python2.7 python

(6)测试移植的python2.7,在ARM系统命令行界面下输入python,若能进入python交互界面,并显示是python2.7.3版本,则说明移植完成!

至此已完成Python-2.7.3的交叉编译及移植

你可能感兴趣的:(linux,python)