编译环境
Linux系统版本:Ubuntu-14.04.5
交叉编译器:gcc-linaro-arm-linux-gnueabihf-4.9

[size=12.0000pt]1. 下载python-2.7.3源码及补丁
下载python源码包 http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tar.xz
下载对应版本的补丁包https://github.com/sjkingo/python27-arm-xcompile/tree/master/files
2 将源码包及补丁包压缩包拷贝到虚拟机中,如下图所示
图片1.png
3 解压缩Python-2.7.3.tar.bz2。进入root用户,输入命令tar jxvf Python-2.7.3.tar.bz2。如下图所示
图片2.png
4 解压成功,进入Python2.7.3目录,如下图所示:
图片3.png
5 运行配置运行配置文件,生成必要的Makefile等文件,输入命令:#./configure
图片4.png
6 编译PC版python Parser/pgen。输入命令:#make python Parser/pgen
图片5.png
7 将生成的PC版移动至hostpython。输入命令:#mv python hostpython
8 将生成的PC版解释器移动至Parser/hostpgen。输入命令:#mv Parser/pgen Parser/hostpgen
图片6.png
9 清除不必要的文件。输入命令:#make distclean
图片7.png
10 将补丁解压,并将文件Python-2.7.3-xcompile.patch复制到python2.7.3目录下。
解压命令:unzip python27-arm-xcompile-master.zip

图片8.png
11 打补丁Python-2.7.3-arm-xcompile-master.zip。输入命令:#patch -p1 < Python-2.7.3-xcompile-master。
图片9.png
12 设置交叉编译工具链为arm-linux-gnueabihf,编译生成的执行文件存放目录为当前目录的_install文件夹。
在编译前先设置环境变量,执行
#export PATH=/usr/local/arm/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/:$PATH

./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ AR=arm-linux-gnueabihf-ar RANLIB=arm-linux-gnueabihf-ranlib LD=arm-linux-gnueabihf-ld NM=arm-linux-gnueabihf-nm --host=arm-linux --build=x86_64-linux --disable-ipv6,编译结果如下图
图片10.png
make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen BLDSHARED="arm-linux-gnueabihf-gcc -shared" CROSS_COMPILE=arm-linux-gnueabihf- CROSS_COMPILE_TARGET=yes HOSTARCH=arm-linux BUILDARCH=x86_64-linux,如下图所示
图片11.png
make install HOSTPYTHON=./hostpython BLDSHARED="arm-linux-gnueabihf-gcc -shared" CROSS_COMPILE=arm-linux-gnueabihf CROSS_COMPILE_TARGET=yes prefix=$PWD/_install,如下图所示
图片12.png
13 在_install目录下,有四个子目录。
1)将/_install/bin/目录下的所有文件复制到SAIL-IMX7D文件系统下的/usr/bin目录下
2)将/_install/include/目录下的所有文件复制到SAIL-IMX7D文件系统下的/usr/include目录下
3)将/_install/lib/目录下的所有文件复制到SAIL-IMX7D文件系统下的/usr/lib目录下
4)将/_install/share/目录下的所有文件复制到SAIL-IMX7D文件系统下的/usr/share目录下
SAIL-IMX7D文件系统压缩,压缩完成后拷贝到指定位置,给IMX7D核心板烧录文件系统。
14 打开超级终端,给开发板上电,启动,命令:python -V,若显示python版本则证明移植成功,如下图所示。
图片13.png