Bob*_*Bob 9 python arm cross-compiling python-3.x
我正在尝试按照本指南为ARM编译Python(版本3.1.3).
这些是我发布的命令(在Ubuntu 12上):
CC=arm-linux-gnueabi-gcc CXX=arm-linux-gnueabi-g++ AR=arm-linux-gnueabi-ar RANLIB=arm-linux-gnueabi-ranlib ./configure --host --build=x86_64-linux-gnu --prefix=/python
make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen BLDSHARED="arm-linux-gnueabi-gcc -shared" CROSS_COMPILE=arm-linux-gnueabi- CROSS_COMPILE_TARGET=yes HOSTARCH=x86_64-linux-gnu BUILDARCH=x86_64-linux-gnu
make install HOSTPYTHON=./hostpython BLDSHARED="arm-linux-gnueabi-gcc -shared" CROSS_COMPILE=arm-linux-gnueabi- CROSS_COMPILE_TARGET=yes prefix=~/Python-2.7.2/_install
Run Code Online (Sandbox Code Playgroud)
有几点需要注意.
configure:警告:缓存变量ac_cv_host包含换行符.无法配置_ctypes模块
Python构建完成,但找不到构建这些模块的必要位:_curses _curses_panel _dbm
_gdbm _hashlib _sqlite3
_ssl bz2 ossaudiodev readline zlib要查找必要的位,请在detect_modules()中的setup.py中查找模块的名称.无法构建这些模块:_tkinter
我在运行第三行时遇到类似的错误,但我想这是因为上面的命令不起作用.
我试图看看是否有人可以帮我修复它.
QEMU
本地编译比交叉编译容易得多。
从您喜欢的任何项目中解压 arm chroot,例如 arch linux arm、raspbian 等。
你已经获得了适用于arm的二进制python,但如果你真的想编译自己的:
下载 qemu-user-static (例如 debian 包),解压它。
将单个静态二进制文件安装到您的arm chroot 的根目录中。
将 magic hex 添加到 proc 中的 binfmt 中。Debian、Gentoo、genric、魔法十六进制序列列表的说明。以下是我的设置:
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
Run Code Online (Sandbox Code Playgroud)
根据需要,可以选择mount --bind
/tmp、/proc、/sys。
享受你的虚拟手臂吧!
归档时间: |
|
查看次数: |
5114 次 |
最近记录: |