python中的非法语句-手臂上的Python,非法指令

在尝试为ARM920T架构编译Python3.2时,作者在交叉编译过程中遇到运行时非法指令错误。尽管在Scratchbox环境中编译和模拟运行成功,但在实际设备上运行pythonexe时,程序终止并显示非法指令错误。错误出现在涉及浮点运算的代码段中,但作者的小型C++测试程序在设备上运行正常。可能的原因包括缺少硬件浮点支持或对齐问题,但目前尚无明确解决方案。
摘要由CSDN通过智能技术生成

我试图为ARM920T(体系结构4T)编译python3.2,但是我遇到了一些奇怪的错误。在

我在Scratchbox环境中编译Python,配置为使用以下编译器:“gcc version 4.3.3(Sourcery G++Lite 2009q1-203)”,这是一个arm交叉编译器。在

编译时,我确保在以下环境变量中设置-march=armv4t架构标志:CFLAGS、CPPFLAGS、SBOX_EXTRA_COMPILER_标志。在

它在scratchbox中编译得很好,我能够用scratchbox arm模拟器运行python解释器。在

但是,当我把它移到我的ARM920T时,在运行pythonexe之后,我立即得到一个非法的指令错误。在

核心转储将产生以下输出:Program terminated with signal 4, Illegal instruction.

#0 0x00138810 in __aeabi_dadd ()

回溯的前几行:

^{pr2}$

据我所知,uaeabi_dadd调用是一个库调用,用于添加两个浮点数(Double Add)。在

我查找了backtrace报告导致错误的python代码(longobject.c行2001):if (log_base_BASE[base] == 0.0) {

twodigits convmax = base;

int i = 1;

log_base_BASE[base] = (log((double)base) / // Line 2001

log((double)PyLo

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值