我正在構(gòu)建我的包,-buildmode=c-shared發(fā)現(xiàn)導(dǎo)入包中的 init() 函數(shù)似乎沒有運(yùn)行。這是預(yù)期的行為,錯(cuò)誤還是我只是愚蠢?我在 linux/amd64 上使用 go1.13.7。有問題的函數(shù)如下所示:func init() {
jsonrpc.HandleFunc("create-context", ContextHandler)}jsonrpc 是我編寫的一個(gè)包,該函數(shù)將一個(gè)條目添加到那里的未導(dǎo)出的全局映射中。
1 回答
楊魅力
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
我試過:
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我得到了一個(gè)lib.h
#include <stdio.h>
#include "lol.h"
int main() {
Yo();
}
我編譯:gcc -o client main.c ./lib.so
我得到了一個(gè):
in init
that's what's up
所以在我看來它有效。
- 1 回答
- 0 關(guān)注
- 352 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
