golang cgo编译导出c链接库 - Thu, Feb 17, 2022
golang cgo编译导出c链接库
main.go文件,必须包含main函数,作为库的start. 使用export标记函数为导出函数
func main() {}
//export Init
// SDK init
func Init(url *C.char) C.int {
return 0
}
i2c.h为cgo自动生成的函数。
// SDK init
extern int Init(char* url);
导出静态链接库和头文件i2c.a
、i2c.h
GOARCH=amd64 GOOS=linux CC=gcc go build -buildmode=c-archive -o example/i2c.a main.go
导出动态链接库和头文件libi2c.so
、libi2c.h
GOARCH=amd64 GOOS=linux CC=gcc go build -buildmode=c-shared -o example/libi2c.so main.go
导出windows动态链接库和头文件libi2c.dll
、libi2c.h
GOARCH=amd64 GOOS=linux CC=gcc go build -buildmode=c-shared -o example/libi2c.dll main.go