1、此编译环境是,Ubuntu 14.04 交叉编译版本采用的是arm-linux-gnueabihf 4.7版本 2、mkdir ~/work cd ~/work 下载代码后解压缩 tar xvf Python-3.4.3.tgz 3、编辑Modules/Setup文件,将其中需要集成的内部模块注释去掉 _csv,posix,errno,pwd,_sre,_codecs,_weakref,_functools,_operator,_collections,itertools,atexit,_stat,_locale,_io,zipimport,faulthandler,_tracemalloc,_symtable,array,cmath,math,_struct,time,_weakref,_random,_pickle,_datetime,_bisect,_heapq,_csv,_socket,_md5,_sha1,_sha256,_sha512,binascii,parser,_multibytecodec,_codecs_cn 首先要交叉编译zlib,如何编译可以参考google,再将libz.a , zconf.h , zlib.h拷贝到arm编译起的lib目录与include目录(此方法不合适,肯定有更合适的) 4、echo ac_cv_file__dev_ptmx=no > config.site echo ac_cv_file__dev_ptc=no >> config.site export CONFIG_SITE=config.site ./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ AR=arm-linux-gnueabihf-ar RANLIB=arm-linux-gnueabihf-ranlib LDFLAGS=-lrt --host=arm-linux-gnueabihf --build=armv7 -disable-ipv6 --without-ensurepip --enable-loadable-sqlite-extensions --prefix=/home/xxxx/Python3.4/python34 make python
5、需要修改sudo chmod 660 /etc/sudoers
sudo vim.tiny /etc/sudoers 在Defaults路径下面增加交叉编译器的路径,原因是在编译时编译器会自动调用sudo sh命令,结果会提示无法找到arm-linux-gnueabihf-ranlib命令: Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/sungrow/arm-linux-gnueabihf-4.7-20130415/bin" 6、运行安装命令 make install 7、打包将软件包拷贝到嵌入式目标板上解压缩 tar -jcvf python34.tar.bz2 python34 以下为目标板的控制台操作 cd ~/ wget -c tar -xvf python34.tar.bz2 export PYTHONHOME=/home/xxxx/python34 export PYTHONPATH=/home/xxxx/python34/Lib 编译成功,已经在目标板上验证通过 资料来源于网络
|