golang so

51 阅读1分钟

blog.csdn.net/arv002/arti…

将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文件