为ARM交叉编译Python时出错

为ARM交叉编译Python时出错,python,python-3.x,arm,cross-compiling,Python,Python 3.x,Arm,Cross Compiling,我正在尝试为ARM编译Python(版本3.1.3),如下所示 以下是我(在Ubuntu 12上)发出的命令: 有几件事需要注意 在执行第一个命令时,如果--host设置为arm linux,则该命令将不会执行,告诉我应该使用“-host”进行交叉编译。这就是为什么我没有设置它的原因 当运行第二条线路时,我会 配置:警告:缓存变量ac_cv_host包含换行符。 未能配置_ctypes模块 Python构建已完成,但需要构建这些模块 找不到: _诅咒\u诅咒\u面板\u dbm _gdbm_ha

我正在尝试为ARM编译Python(版本3.1.3),如下所示

以下是我(在Ubuntu 12上)发出的命令:

有几件事需要注意

  • 在执行第一个命令时,如果--host设置为arm linux,则该命令将不会执行,告诉我应该使用“-host”进行交叉编译。这就是为什么我没有设置它的原因
  • 当运行第二条线路时,我会
  • 配置:警告:缓存变量ac_cv_host包含换行符。 未能配置_ctypes模块

    Python构建已完成,但需要构建这些模块 找不到: _诅咒\u诅咒\u面板\u dbm
    _gdbm_hashlib_sqlite3
    _ssl bz2 ossaudiodev readline zlib要找到必要的位,请查看 在setup.py中,在detect_modules()中输入模块名称

    未能生成这些模块: _特金特

    我在运行第三行时遇到了类似的错误,但我想这是因为上面的命令不起作用


    我想看看有没有人能帮我修一下

    QEMU
    下进行本机编译要比交叉编译容易得多

    从您喜欢的任何项目(例如ArchLinuxARM、raspbian等)解包arm chroot

    您已经获得了用于arm的二进制python,但如果您真的想编译自己的:

    下载qemu用户静态(例如debian软件包),将其解包

    将单个静态二进制文件安装到arm chroot的根目录中

    在程序中将魔法十六进制添加到binfmt。有关、、的说明。以下是我的设置:

    mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
    echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/qemu-arm-static:' > /proc/sys/fs/binfmt_misc/register
    export QEMU_CPU=arm926
    
    或者,根据需要,
    mount--bind
    /tmp、/proc、/sys


    享受你的虚拟手臂

    我得到了同样的错误,只是忽略了它,继续按照

    它与hello_world项目合作。您还可以从
    \u install/lib/Python2.7/
    文件夹运行testall.py文件。 你也可以参考

    您使用的嵌入式Linux发行版是什么?如果Python版本不重要,您可以选择。它提供了Python3.3。我把它作为一个练习来做,CCing for busy Box在这方面不是专家,但上次我不得不在ARM(对于QNX OS)上进行交叉编译时,我认为./configure步骤需要指定--target和--host。如果指定--target=arm linux和--host=arm linux,--host错误会消失吗?在我看来,arm编译器没有找到编译这些扩展模块所需的头文件(_curses、_ssl、bz2等)。或者找不到LIB。。。这些不是编译器的一部分;因此,在任何情况下,您都需要从源代码为ARM构建所有这些LIB(并告诉python构建在何处找到它们),或者将python配置为跳过这些模块。如果我建议稍微回溯一下,在运行的ARM系统中本机编译要比交叉编译更容易。为此,我喜欢在QEMU中构建ARM软件。下面是一个快速入门指南。
    mount -t binfmt_misc none /proc/sys/fs/binfmt_misc
    echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/qemu-arm-static:' > /proc/sys/fs/binfmt_misc/register
    export QEMU_CPU=arm926