如何在SWIG生成的Go语言wrapper中添加import导入语句
解决方案
你可以通过SWIG的%go_import指令直接为生成的Go wrapper添加自定义导入,具体操作示例如下:
完整实现步骤
- 首先在你的
.iSWIG接口文件头部添加如下声明:
%go_import "reflect" // 如果需要导入带别名的包也可以这么写:%go_import reflectpkg "reflect"
- 如果你是要把自定义的依赖
reflect的Go代码直接嵌入到生成的wrapper里,可以搭配%insert(go_wrapper)块使用,完整示例:
%module example // 声明需要导入的reflect包 %go_import "reflect" // 插入自定义Go代码到生成的wrapper文件中 %insert(go_wrapper) %{ func MyCustomFunc(v interface{}) string { // 这里可以直接使用reflect包 t := reflect.TypeOf(v) return t.Name() } %} // 剩下的你原有SWIG接口定义内容 %{ #include "your_header_file.h" %} %include "your_header_file.h"
验证效果
执行SWIG生成Go wrapper命令后,打开生成的对应Go文件,头部的import块会自动包含"reflect"条目,你插入的自定义Go代码可以正常调用reflect包的能力,不需要手动修改生成后的wrapper文件。
内容的提问来源于stack exchange,提问作者user7698505
相关产品推荐
相关产品推荐

