直接回答:Go 编译 DLL 要打开 cgo,函数上方用 //export 函数名 导出,包名必须是 main 并且包含空的 main 函数,再用 gc 工具链编译成 dll。

首先撰写golang程序exportgo.go:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main
import "C"
import "fmt"

//export PrintBye

func PrintBye() {
fmt.Println("From DLL: Bye!")
}
//export Sum

func Sum(a int, b int) int {
return a + b;
}
func main() {
// Need a main function to make CGO compile package as C shared library
}

编译成 DLL 文件:

1
go build -buildmode=c-shared -o exportgo.dll exportgo.go

编译后得到 exportgo.dll 和 exportgo.h两个文件。

这篇笔记整理自我自己的实践记录,如果做法有出入,或者你踩过别的坑,欢迎到留言板一起聊聊。

站内搜索

没有找到内容!