上一篇说了下golang 语言怎么结合plan 9 assembler编写程序。
这次来开下go是怎么使用plan 9 c语言来开发一些库的,这里只是简单的使用一个简单例子进行演示。
还是看下源代码吧
- #include "runtime.h"
- void ·Add(int32 a,int32 b,int32 r) ;
first.h 声明first.Add方法,同时引入runtime包的runtime.h头文件。
- #include "first.h"
- //first.c
- void ·Add(int32 a,int32 b,int32 r) {
- r = a + b;
- USED(&r);
- }
first.c 进行了first.Add方法的定义。
- package first
- func Add(a,b int32) int32
first.go first.Add方法在golang语言中的声明。
- package main
- import "fmt"
- import "first"
- func main() {
- fmt.Println(first.Add(int32(14),int32(13)))
- }
还是那个简单的main方法,调用first.Add方法,并且把结果打印到终端。
下面看下编译运行脚本吧。
- # 8c -I$GOROOT/src/pkg/runtime -I$GOROOT/pkg/runtime/linux -I$GOROOT/src/pkg/runtime/linux/386 -wF first.c
- # 8g -o _go_.8 first.go
- # gopack grc first.a first.8 _go_.8
- # 8g -I./ main.go
- # 8l -L./ -o main main.8
- # ./main
- 27