【发布时间】:2018-02-08 13:34:25
【问题描述】:
我正在编写一些导出类似函数的 go 代码:
package main
import "C"
//export returnString
func returnString() string {
//
gostring := "hello world"
return gostring
}
func main() {}
我使用 go build -buildmode=c-shared 构建 .so 和头文件,但是当我在 C 代码中调用 returnString() 时,我得到 panic: runtime error: cgo result has Go pointer
在 go 1.9 中有没有办法解决这个问题?
【问题讨论】:
-
为什么要将 Go 字符串返回给 C 代码?这里的返回值应该在C中分配。
-
你的意思是我应该从我的 go 代码中返回一个 CString 吗?
-
嗯,这是两种不同的结构。调用代码需要什么?