python交叉编译过程记录



python交叉编译:

平台:ubuntu 15.10,root用户登录,交叉编译器arm-none-linux-gnueabi,宿主机:ubuntu,目标机:arm。

1、下载python

下载官网地址:https://www.python.org 

2、python准备两份,一份为宿主机编译,一份为目标机编译,分别放在/root/x86和/root/arm下。

3、编译宿主机python

(a)./configure

(b)make

2、配置:

CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++ ./configure  --host=arm-linux  --prefix=/usr/local/arm/python  ac_cv_file__dev_zero=yes ac_cv_func_setpgrp_void=yes apr_cv_process_shared_works=yes apr_cv_mutex_robust_shared=yes apr_cv_tcp_nodelay_with_cork=yes ap_void_ptr_lt_long=no ap_cv_void_ptr_lt_long=no LDFLAGS=-lpthread -disable-shared --build=arm READELF=arm-none-linux-gnueabi-readelf --disable-ipv6 ac_cv_file__dev_ptmx=0 ac_cv_file__dev_ptc=0

其中的/usr/local/arm为本人的arm交叉编译安装目录。

3、make及make过程的问题

(a)pgen的替换

在宿主机的源码目录中找到pgen,将该文件拷贝到目标机相同文件夹下,改名字pgen_pc,在python根目录中的makefile文件中找到PGEN=  Parser/pgen$(EXE),大约位置292行,下面添加一行PGEN_PC= Parser/pgen_pc$(EXE),搜索$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C),大约位置797行,改为$(PGEN_PC) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C)。

(b)_freeze_importlib替换:

在宿主机的源码目录中找到_freeze_importlib,将该文件拷贝到目标机相同文件夹下,改名字_freeze_importlib_pc,在python根目录中的makefile文件中找到./Programs/_freeze_importlib \,大约位置730行,修改为./Programs/_freeze_importlib_pc \,注意pc后面有个空格。

4、make

执行步骤3之后,编译应该没有错误。

5、make install

本人python的安装目录为: /usr/local/arm/python

至此,可以使用交叉编译过的python了。

下面应该是libxml的交叉编译了,虽然,网上大把的资料,但是我还是决定写下自己的编译笔记。


 

    


你可能感兴趣的:(python)