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