【问题标题】:C++ to C Wrapper using SWIG (for FLTK)使用 SWIG 的 C++ 到 C 包装器(用于 FLTK)
【发布时间】:2011-05-31 15:15:39
【问题描述】:

我需要为 FLTK C++ 类生成包装器以在纯 C 中使用它。 我知道,SWIG 可以做到这一点,而且我知道如何为 C#、Python 等生成包装器。 但我不知道如何使用 SWIG 将 C++ 包装为 C。 这是一个简单的任务,但我找不到答案:) 请帮忙。

【问题讨论】:

  • 有趣,从我从文档中可以看出,SWIG 为 C++ 代码生成 C 包装器,应该可以直接使用它们
  • 谢谢,但我在文档中找不到有关如何执行此操作的信息。我会继续搜索...
  • @Hasturkun:我认为您误解了文档。

标签: c++ c wrapper swig fltk


【解决方案1】:

我认为 SWIG 不支持开箱即用的 C 包装器的生成。您始终需要指定目标语言。 2008 年,有一个 GSoC project 写了一个 C backend,但显然这从未完成/并入 SWIG。

【讨论】:

  • 我不认为本文档是按字面意思理解的。相反,这说明了每种语言的包装函数的外观。 Python生成器(例如)生成_wrap_new_List,而不是new_list;这对 Python 可用new_List_wrap_new_List 做的比文档说的要多,因为它还需要与 Python VM 集成。
  • 现在我用 C 后端测试 SWIG。使用 mingw 成功编译,但在解析 FLTK 包含时出现一些错误(例如:FLTK13\FL\filename.h(60): Error: Syntax error in input(1).)。我会报告结果...感谢您的想法!
  • 我决定采用另一种方式来解决我的问题,但对于上述问题中描述的问题,Martin 提供的解决方案 - 可以找到的最佳解决方案。再次感谢您。
  • 你可以从 svn (swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2008-maciekd) 下载带有 C 后端的 SWIG。最好使用 mingw+msys 编译(使用自动安装程序:sourceforge.net/projects/mingw/files/…),使用以下命令:./autogen.sh && ./configure && make。以这种方式使用 swig:swig -c++ -c fltk13.i
  • 有一个gsoc2012 尚未完成但更接近。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-29
  • 2020-09-19
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
相关资源
最近更新 更多