golang cgo编译导出c链接库

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.ai2c.h

GOARCH=amd64 GOOS=linux CC=gcc go build -buildmode=c-archive -o example/i2c.a  main.go

导出动态链接库和头文件libi2c.solibi2c.h

GOARCH=amd64 GOOS=linux CC=gcc go build -buildmode=c-shared -o example/libi2c.so  main.go

导出windows动态链接库和头文件libi2c.dlllibi2c.h

GOARCH=amd64 GOOS=linux CC=gcc go build -buildmode=c-shared -o example/libi2c.dll  main.go

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 wind.kaisa@gmail.com

💰

×

Help us with donation