我正在构建我的包,-buildmode=c-shared发现导入包中的 init() 函数似乎没有运行。这是预期的行为,错误还是我只是愚蠢?我在 linux/amd64 上使用 go1.13.7。有问题的函数如下所示:func init() {
jsonrpc.HandleFunc("create-context", ContextHandler)}jsonrpc 是我编写的一个包,该函数将一个条目添加到那里的未导出的全局映射中。
1 回答

杨魅力
TA贡献1811条经验 获得超6个赞
我试过:
package main
import "C"
import "fmt"
func init() {
fmt.Println("in init")
}
//export Yo
func Yo() {
fmt.Println("that's what's up")
}
func main() {
fmt.Println("vim-go")
}
go build -buildmode=c-shared lib.go我得到了一个lib.h
#include <stdio.h>
#include "lol.h"
int main() {
Yo();
}
我编译:gcc -o client main.c ./lib.so
我得到了一个:
in init
that's what's up
所以在我看来它有效。
- 1 回答
- 0 关注
- 326 浏览
添加回答
举报
0/150
提交
取消