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

2019-07-13 04:22发布

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二进制文件。
这里写图片描述

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的交叉编译及移植