嵌入式python2.7.13移植

2019-07-12 17:02发布

操作环境:           1、linux主机:Ubuntu14.04               2、嵌入式linux内核版本:3.14.26               3、嵌入式硬件:BeagleBone-Black,Cortex-A8内核               4、交叉编译工具: arm-linux-gnueabihf-gcc
步骤:         1、从官网下载python-2.7.13源码。
         2、解压源码,进入python-2.7.13目录,先编译x86版,分别执行如下命令:[plain] view plain copy
  1. ./configure    
  2.   
  3. make python Parser/pgen    
  4.   
  5. mv python hostpython    
  6.   
  7. mv Parser/pgen Parser/hostpgen    
  8.   
  9. make distclean   
              
         3、接下来开始编译ARM版本,值得注意的是需要先下载一个针对嵌入式编译的补丁文件:              Python-2.7.13-compile.patch.tar.gz
              (这个补丁文件到底怎么来的还不清楚,肯定不是官网的,以后再分析)                
                解压缩补丁文件并给源码打补丁,进入源码目录,执行:
[plain] view plain copy
  1. patch -p1 < ../Python-2.7.13-xcompile.patch  

          4、先建立一个文件夹用来存放编译出来的文件:
[plain] view plain copy
  1. mkdir ../INSTALL  

          5、为了方便测试和编译,新建三个脚本文件并赋予执行权限,三个脚本文件分别为mk_conf.sh,
               mk_make.sh,mk_install.sh,内容分别如下:
                mk_conf.sh内容如下:
[plain] view plain copy
  1. #!/bin/sh  
  2.   
  3.  ./configure --host=arm-linux-gnueabihf --prefix=$PWD/../INSTALL   
  4.      --build=x86_64-linux-gnu   
  5.      --enable-ipv6   
  6.      --enable-shared   
  7.      ac_cv_file__dev_ptmx="yes"   
  8.      ac_cv_file__dev_ptc="no"  

                mk_make.sh内容如下:[plain] view plain copy
  1. #!/bin/sh  
  2.    
  3.  make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen   
  4.      BLDSHARED="arm-linux-gnueabihf-gcc -shared"   
  5.      CROSS_COMPLIE=arm-linux-gnueabihf-   
  6.      CROSS_COMPLIE_TARGET=yes   
  7.      HOSTARCH=arm-linux-gnueabihf   
  8.      BUILDARCH=x86_64-linux-gnu   
  9.      -j2  

                mk_install.sh内容如下:[plain] view plain copy
  1. #!/bin/sh  
  2.    
  3.  make install HOSTPYTHON=./hostpython   
  4.      BLDSHARED="arm-linux-gnueabihf-gcc -shared"   
  5.      CROSS_COMPILE=arm-linux-gnueabihf-   
  6.      CROSS_COMPILE_TARGET=yes   
  7.      prefix=$PWD/../INSTALL  

               赋予三个脚本文件执行权限:[plain] view plain copy
  1. chmod +x mk_conf.sh mk_make.sh mk_install.sh  

          6、分别执行三个脚本文件:[plain] view plain copy
  1. ./mk_conf.sh  
  2. ./mk_make.sh  
  3. ./mk_install.sh  

              在执行mk_install.sh时,如果出现如下错误:(第2部如果全编译的话不会出现下面的错误)
         
         
               我的解决办法是在Makefile文件中找到并删除PYTHONPATH赋值部分,如下图:

                 删除PYTHONPATH赋值部分后的结果如下图:

                           之后再执行 :[plain] view plain copy
  1. ./mk_install.sh  
                        就会在INSTALL文件中得到四个文件夹,将bin,include,lib内的文件分别复制到嵌入式系统中,               就完成了安装。
转自:http://blog.csdn.net/xiezhaoxuan/article/details/75453649