cgo使用
number.h1
int number_add_mod(int a, int b, int mod);
number.c1
2
3
4
5
int number_add_mod(int a, int b, int mod) {
return (a+b)%mod;
}
静态库1
2
3cd ./number
gcc -c -o number.o number.c
ar rcs libnumber.a number.o
go引入静态库1
2
3
4
5
6
7
8
9
10
11
12package main
//#cgo CFLAGS: -I.
//#cgo LDFLAGS: -L${SRCDIR} -lnumber
//
//#include "number.h"
import "C"
import "fmt"
func main() {
fmt.Println(C.number_add_mod(10, 5, 12))
}
注意: import “C” 必须是第一个引入的包,且跟注释的C代码,中间无空行。