Cgo

Introduction


  • 在golang里调用.so文件

Example


  • main.go
package main

/*
#cgo CFLAGS: -I.
#cgo LDFLAGS: -L. -lQRModule
#include "QRModule.h"
*/
import "C"

import "fmt"

func main() {
	var a,b string
	res := C.makeEncDatQR(C.CString(a), C.CString(b))
	fmt.Println(res)
}
  • QRModule.h
int  makeEncDatQR( char*, char*, char*, char*, char* );
  • dir
➜  test ls
QRModule.h     go.mod         libQRModule.so main.go

参考文档