前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python的交叉编译移植至arm板

Python的交叉编译移植至arm板

作者头像
jianghaibobo
发布2019-08-02 16:29:43
2.8K0
发布2019-08-02 16:29:43
举报
文章被收录于专栏:我命由我不由天

虽然网上有那么多python的交叉编译移植教程,但是方法差异蛮大,需要根据实际开发板的型号做调整,以下是适用于海思的板子移植过程。

step 1. python版本从网上下就可以;

step 2. 解压;

step 3. 新建一个目录用以编译pc版python,再编译pgen出来,用于生成语法解析器;

mkdir build.pc cd build.pc ../configure make

cd..

step 4. 配置 和编译CC=arm-hisiv300-linux-gcc CXX=arm-hisiv300-linux-g++ ./configure --host=arm-linux --prefix=/home/jhb/nfs/Python-2.7.3/python_install

step 5.

修改setup.py detect_modules函数: 函数的前两行是把/usr/local加到搜索目录中,我们的cross compiler一般不会直接安装在 /usr/local里面的,所以这两行去掉: add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') add_dir_to_list(self.compiler.include_dirs, '/usr/local/include')

step 6.

之后就要对Makefile做一些修改: (1)把 # OPT= -DNDEBUG -g -O3 -Wall -Wstrict-prototypes OPT= -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes 一行中,去掉-g,我们不要debug python,-O3改为-O2,空间紧张O2就可以了。 (2)在: PGEN= Parser/pgen$(EXE) 一行的下面加上: PGEN_HOST= build.pc/Parser/pgen$(EXE) 表明我们在HOST上运行的pgen。 (3)在要使用PGEN的地方改为PGEN_HOST: $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) -$(PGEN) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) 改为: $(GRAMMAR_H) $(GRAMMAR_C): $(PGEN) $(GRAMMAR_INPUT) -$(PGEN_HOST) $(GRAMMAR_INPUT) $(GRAMMAR_H) $(GRAMMAR_C) (4)修改所有使用新生成的python的地方。 在BUILDPYTHON变量下面定义一个变量:PYTHON_HOST=build.pc/python$(EXE),然后将所有./$(BUILDPYTHON)的地方都换成./$(PYTHON_HOST)。

step 7. make 会出现错误

Include/pyport.h:243: error: #error "This platform's pyconfig.h needs to define PY_FORMAT_LONG_LONG" 修改pyconfig.h: 找到#undef PY_FORMAT_LONG_LONG 处加:#define PY_FORMAT_LONG_LONG "ll"

make test

make install

step 8. 此时在开发板上./python可以运行。

step 9. 设置环境变量

export PYTHONHOME=/root/xbmc/python_install-test export PYTHONPATH=$PYTHONHOME:$PYTHONHOME/lib/python2.7:$PYTHONHOME/lib:$PYTHONHOME/lib/python2.7/site-packages export PATH=$PATH:$PYTHONHOME:$PYTHONPATH

移植python的目的是为了使用一个叫speedtest的网速测试工具,它使用python 脚本语言编写,linux上测试网速的工具很多,但是适用于开发板的却少的可怜,因此需要移植python来支持speedtest。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-11-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档