如何使用 SWIG 在 C++ API 上生成 C 包装器? [复制]
Posted
技术标签:
【中文标题】如何使用 SWIG 在 C++ API 上生成 C 包装器? [复制]【英文标题】:How can I generate C wrappers over C++ API using SWIG? [duplicate] 【发布时间】:2011-11-28 23:19:53 【问题描述】:我想使用 SWIG 在一些 C++ API 上生成 C 包装器。
来自 SWIG 文档SWIG and C++:
6.2 方法
为了封装 C++,SWIG 使用分层方法来生成代码。在最低级别,SWIG 生成程序 ANSI-C 样式包装器的集合。这些包装器照顾 基本类型转换、类型检查、错误处理和其他底层细节 C++ >绑定。这些包装器也足以将 C++ 绑定到任何目标语言 支持内置程序。在某种意义上,您可能会将这一层包裹视为 为 C++ 提供 C 库接口。
但是,如果不生成代码以在 Python、Ruby 等语言中使用 API,我看不到任何选项可以做到这一点。我怎样才能只获得 C 包装器?
【问题讨论】:
【参考方案1】:虽然 SWIG 的主分支无法为 C++ API 生成 C 包装器(问题中引用的 SWIG 文档有点误导),但在 2008 年 Google Summer of Code 期间创建了一个 SWIG 分支,可在 https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-maciekd/ 找到它确实只是。我在这里找到了答案:C++ to C Wrapper using SWIG (for FLTK)
【讨论】:
值得注意的是,正如here 所述,今年(2012 年)还有另一个 GSOC 项目。它还没有完成,但希望这次能实现。以上是关于如何使用 SWIG 在 C++ API 上生成 C 包装器? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
SWIG 在 Windows 中生成 C++ Python3 包装器导致断言 MSVC 2017