0

我正在尝试找到一种方法来使用 python 脚本测试我的 C 代码。到目前为止,我的发现是

1)使用Ctypes,我可以轻松加载so并直接从python调用函数。另外,一切都发生在运行时,所以没有额外的编译/包装东西。

2) 然而,在 python 中重写每种类型是乏味且容易出错的,尤其是对于复杂的数据类型。每当定义发生变化时,我都必须更新 python 脚本中的定义。

我想知道既然 Swig 可以自动导出数据类型,是否可以将 Swig 和 Ctypes 混合在一起?即使用Swig导出数据类型,可以通过Ctypes调用函数。

ps 我不确定 Cython 是否更适合,但我们的环境中没有 Cython。

4

1 回答 1

0

我最终使用 Swig 动态链接到由 C 代码生成的 so 库。这样,我只需要在 swig 接口文件中包含头文件,就可以告诉 swig 要公开哪些函数/数据类型。这种方法的另一个优点是我可以用 C 编写测试辅助函数,并且也可以轻松地公开它们。

于 2013-02-18T19:18:11.787 回答