欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

嵌入式python2.7.13移植

程序员文章站 2022-05-22 19:14:21
...

操作环境:

           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版,分别执行如下命令:

         ./configure  

         make python Parser/pgen  

         mv python hostpython  

         mv Parser/pgen Parser/hostpgen  

         make distclean 

             

         3、接下来开始编译ARM版本,值得注意的是需要先下载一个针对嵌入式编译的补丁文件:

              Python-2.7.13-compile.patch.tar.gz

              (这个补丁文件到底怎么来的还不清楚,肯定不是官网的,以后再分析)

               

                解压缩补丁文件并给源码打补丁,进入源码目录,执行:

         patch -p1 < ../Python-2.7.13-xcompile.patch

          4、先建立一个文件夹用来存放编译出来的文件:
         mkdir ../INSTALL

          5、为了方便测试和编译,新建三个脚本文件并赋予执行权限,三个脚本文件分别为mk_conf.sh,

               mk_make.sh,mk_install.sh,内容分别如下:


                mk_conf.sh内容如下:

#!/bin/sh

 ./configure --host=arm-linux-gnueabihf --prefix=$PWD/../INSTALL \
     --build=x86_64-linux-gnu \
     --enable-ipv6 \
     --enable-shared \
     ac_cv_file__dev_ptmx="yes" \
     ac_cv_file__dev_ptc="no"


                mk_make.sh内容如下:

#!/bin/sh
 
 make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen \
     BLDSHARED="arm-linux-gnueabihf-gcc -shared" \
     CROSS_COMPLIE=arm-linux-gnueabihf- \
     CROSS_COMPLIE_TARGET=yes \
     HOSTARCH=arm-linux-gnueabihf \
     BUILDARCH=x86_64-linux-gnu \
     -j2


                mk_install.sh内容如下:

#!/bin/sh
 
 make install HOSTPYTHON=./hostpython \
     BLDSHARED="arm-linux-gnueabihf-gcc -shared" \
     CROSS_COMPILE=arm-linux-gnueabihf- \
     CROSS_COMPILE_TARGET=yes \
     prefix=$PWD/../INSTALL

               赋予三个脚本文件执行权限:

           chmod +x mk_conf.sh mk_make.sh mk_install.sh

          6、分别执行三个脚本文件:

        ./mk_conf.sh
        ./mk_make.sh
        ./mk_install.sh

              在执行mk_install.sh时,如果出现如下错误:(第2部如果全编译的话不会出现下面的错误)

嵌入式python2.7.13移植

         

         

               我的解决办法是在Makefile文件中找到并删除PYTHONPATH赋值部分,如下图:

嵌入式python2.7.13移植


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

嵌入式python2.7.13移植


                           之后再执行 :

          ./mk_install.sh
                        就会在INSTALL文件中得到四个文件夹,将bin,include,lib内的文件分别复制到嵌入式系统中,

               就完成了安装。