kaisawind's blog
  • 关于
  • 所有帖子

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


辽ICP备2021007608号 | © 2025 | kaisawind

Facebook Twitter GitHub