a.go
package main
import "C"
import "fmt"
//export gg
func gg(a C.int) C.int {
fmt.Println("hello",a);
return a*2;
}
func main() {} // 空的主函数,因为我们不运行这个程序,只是编译它为DLL
a.c
#include<stdio.h>
int gg(int);
int main(){
gg(12);
}
编译执行
go build -o q.dll -buildmode=c-shared a.go
gcc a.c -L . -lq
a.exe