1.go源码
package main
import "C"
//export Hello
func Hello() string {
return "Hello"
}
func main() {
}
}
2.先要安装go的标准库
go install -buildmode=shared -linkshared std
3.go生成动态库
go build -v -x -buildmode=c-shared -o libhello.so
会生成libhello.h、libhello.so两个文件。
4.c调用
#include<stdio.h>
#include "libhello.h"
void main()
{
printf("%s in C\n", Hello());
}
- 编译C可执行程序
gcc test.c -lhello -o test
附加:
c中的char*,转换为go中的string