function.cpp返回一个int数组,同时
wrapper.py尝试将它们解释为双精度型。更改
ArrayType为
ctypes.c_int* 10,它应该起作用。
仅使用
np.ctypeslib而不是
frombuffer自己可能更容易。这看起来应该像
import ctypesfrom numpy.ctypeslib import ndpointerlib = ctypes.CDLL('./library.so')lib.function.restype = ndpointer(dtype=ctypes.c_int, shape=(10,))res = lib.function()


