前言我需要运行python Arm9 s3c2410处理器的。以下是我的编译过程。主机编译环境:ubuntu, gcc, arm-linux-gcc。交叉编译程序:sqlite, python编译sqlite首次运行以下步骤:焦油zxfcd。\/ configure\u2014\u2014主机= arm-linux启用共享\u2014\u2014禁用readline disable-dynamic-extensions上面解压sqlite,然后做一些配置。在这里,我希望sqlite将被安装在当时,必须生成动态链接库而不是readline和sqlite的动态扩展。然后编辑Makefile在添加和删除- g和CXXFLAG,我们不需要调试sqlite。

编译python和减压python:焦油jxfcd编译PC版本的语法解析器。当编译python时,你需要编译一个程序叫做pgen生成语法解析器,所以我们必须首先生成一个pc版本pgen: mkdircdmake解析器\/ pgen然后ls解析器,您应该能够看到pgen。修改配置配置检查是否编译器的printf支持% zd,如果它发现它在交叉编译,就停止工作。这是好的吗?如果测试\u201Ccross_compiling美元\u201D=是的;然后#定义PY_FORMAT_SIZE_T\u201Cz\u201D_ACEOFelse(退出ac_status美元)公司- f *核心。核心conftest美元ac_exeext conftest。

美元ac_extfi删除这两个段落之间的内容只是下降。编译的版本的python语法解析器,您可以开始编译python的手臂版本。mkdircd\u2014\u2014prefix = \/ home \/ leojay \/测试\/ arm-system-working \/ rootfs\u2014\u2014disable-ipv6主机= arm-linux\u2014\u2014启用共享首先创建一个目录进行编译,然后用python做一些配置,如安装目录,不使用ipv6,使用arm-linux编译器来生成动态链接库。修改Makefile后,你必须做一些修改Makefile,把选择= -DNDEBUG - g - wall o3 -Wstrict-prototypes行,删除- g,我们不想调试python, o3改为- 02,和空间紧密的O2。

所有这样的地方。\/美元(BUILDPYTHON)是python改为,如:平台:$ (BUILDPYTHON)改为平台:美元(BUILDPYTHON)有很多地方,所以请小心地修改它。修改每个负责编译python扩展模块。然而,由于python不考虑交叉编译,需要一些修改。PyBuildExt类:build_extension函数:此函数会加载这些新编译扩展编译后所有的扩展,但我们显然不能装上i686电脑,所以我们必须跳过这些操作。写后直接返回build__extension(自我,ext)而不是负担。Detect_modules函数:函数的前两行\/usr\/local添加到搜索目录。我们在\/usr\/local交叉编译器一般不直接安装,所以删除这两条线:add_dir_to_list (_dirs, \/ usr \/地方\/ lib) add_dir_to_list (_dirs,\u201C\/ usr \/地方\/包括\u201D)的设置lib_dirs, inc_dirs,删除所有的括号。

减少后的python python完全安装,它是非常大的,所以一些图书馆,绝对不需要应该被删除。附上我的脚本。注意,因为我的python程序都运行在python的面向对象参数,不需要所有. py和.pyc,只要有.pyo。因此,该脚本将删除所有. py和.pyc。你可以根据你的需要做出调整。备注: