如何在 SWIG 生成的 Go 包装器中添加导入语句

Posted

技术标签:

【中文标题】如何在 SWIG 生成的 Go 包装器中添加导入语句【英文标题】:How to add an import statement in a Go wrapper generated by SWIG 【发布时间】:2021-09-15 07:12:13 【问题描述】:

我有一个由SWIGGo 语言生成的包装器。在这个包装器中,我插入了一些需要 reflect 包的 Go 代码。因此,我需要在此包装器中添加行 import "reflect"SWIG 中是否有示例说明如何执行此操作?

【问题讨论】:

【参考方案1】:

我想你想要的是section 23.4.10 添加额外的go代码即关于

的部分

如果你需要导入其他的 go 包,你可以使用 %go_import 来完成。比如……

%go_import("fmt", _ "unusedPackage", rp "renamed/package")

%insert(go_wrapper) %

func foo() 
  fmt.Println("Some string:", rp.GetString())


// Importing the same package twice is permitted,
// Go code will be generated with only the first instance of the import.
%go_import("fmt")

%insert(go_wrapper) %

func bar() 
  fmt.Println("Hello world!")


%

【讨论】:

完美运行 - 谢谢!

以上是关于如何在 SWIG 生成的 Go 包装器中添加导入语句的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SWIG 在 C++ API 上生成 C 包装器? [复制]

SWIG C++ Python:通过引用或指针包装 int

无法为 c++ python 扩展编译 swig 生成的包装器

SWIG:如何从 SwigPyobject 获取包装的 std::shared_ptr 的值

swig perl 包装器没有为类成员函数生成

带有指针的C结构,如何Swig?