如何使用SWIG在c++ API上生成C包装器?

How can I generate C wrappers over C++ API using SWIG?

本文关键字:包装 SWIG 何使用 c++ API      更新时间:2023-10-16

我想使用SWIG在一些c++ API上生成C包装器。

来自SWIG文档SWIG和c++:

6.2的方法

为了包装c++, SWIG使用一种分层的方法来生成代码。最低级别是SWIG生成过程性ANSI-C风格包装器的集合。这些包装纸就够了类的基本类型转换、类型检查、错误处理和其他低级细节c++>绑定。这些包装器也足以将c++绑定到任何目标语言中支持内置过程。在某种意义上,您可以将这层包装视为为c++提供一个C库接口。

但是,如果不生成使用Python、Ruby等语言的API的代码,我没有看到任何这样做的选项。我怎样才能得到C包装呢?

虽然SWIG的主分支不能为c++ API生成C包装器(问题中引用的SWIG文档有点误导),但在2008年Google代码夏季期间创建了一个SWIG分支,可以在https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-maciekd/上找到它。我在这里找到了答案:c++到C包装使用SWIG (FLTK)