zoukankan      html  css  js  c++  java
  • Python的交叉编译移植至arm板

    虽然网上有那么多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。

    参考于 : http://blog.csdn.net/heqiangflytosky/article/details/8875561

    种树最好的时间是十年前,其次是现在。
  • 相关阅读:
    Eclipse编辑properties文件中文乱码
    Spark安装
    安装VirtualBox后,VMware不能上网
    Hadoop Eclipse插件编译
    MapReduce 常见问题
    MapReduce 气象数据集
    Maven构建Hadoop开发环境
    Eclipse安装Maven
    吴恩达深度学习笔记 course4 week2 深度卷积网络 实例探究
    吴恩达深度学习笔记 cousrse4 week1作业
  • 原文地址:https://www.cnblogs.com/bobojiang/p/7810323.html
Copyright © 2011-2022 走看看