我正在尝试注册一个使用Ctypes从我的C代码中调用的python回调。在我的计算机上一切正常,但是当代码在ARM设备中运行时python崩溃。 在我的计算机上,我使用的是python 3.6.6,而此ARM设备使用的是python 3.6.3。我正在使用buildroot生成图像。
好吧,经过一些测试,似乎该问题与CFUNCTYPE有关。 以下代码仅测试CFUNCTYPE,它在我的计算机上运行,但在ARM设备上崩溃(分段错误):
from ctypes import *
def func():
print("func called")
CALLBACK = CFUNCTYPE(None)
callback = CALLBACK(func)
print("Calling callback")
callback()
print("Done!")
我的计算机中的结果是:
Calling callback
func called
Done!
在ARM设备中的结果是:
Calling callback
Segmentation fault
这是CFUNCTYPE中的错误吗?还是我需要做些不同的事情?我在此设备上运行了很多python代码,除此CFUNCTYPE之外,其他所有程序都运行正常。
谢谢