200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > python2.7.13交叉编译移植到arm

python2.7.13交叉编译移植到arm

时间:2023-08-29 04:57:56

相关推荐

python2.7.13交叉编译移植到arm

1、linux主机:Ubuntu14.04

2、嵌入式linux内核版本:3.14.26

3、嵌入式硬件:M6GxC Cortex-A7内核

4、交叉编译工具: gcc-linaro-arm-linux-gnueabihf-4.9-.09_linux(arm-linux-gnueabihf-gcc)

步骤:

1.官网下载python-2.7.13

2.进入到python-2.7.13目录,先编译虚拟机版本x86_64版本:

./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_conf.sh:如果报错,手动执行以下指令:

a. mkdir config.site:

ac_cv_file__dev_ptmx="yes" \

ac_cv_file__dev_ptc="no"

CONFIG_SITE=config.site ./configure CC=arm-linux-gnueabihf-gcc CXX=aarm-linux-gnueabihf-g++ --host=arm-linux --build=x86_64-linux --prefix=$PWD/../INSTALL --disable-ipv6

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

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

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

之后再执行 :

./mk_install.sh

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

就完成了安装。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。