将go语言开发的程序编译成so[动态库文件]就可以给c或者c++程序调用.
如果想要导出C能使用的[动态库].我们需要将函数的名称编写为大写. 并且还需要添加导出注释(重要) //export HelloWorld 这个注释必须写,并且//后面不要有空格.
package main
/*
#include <stdlib.h>
*/
import "C"
import "fmt"
//export HelloWorld
func HelloWorld(str *C.char) *C.char{
fmt.Printf(C.GoString(str))
return str
}
func main() {
// fmt.Printf("Done\n")
}
go build -buildmode=c-shared -o libtest.so
编译成功后会自动生成libtest.so 以及 libtest.h文件