环境
- gcc (MinGW64)
编译说明
- xx是自己制定的名字
- 准备xx.c和xx.h文件
- 执行命令
- gcc -c xx.c
- ar -cru libxx.a xx.o
使用说明
/*
//第二个参数是c存放的目录,例如新建clib文件夹
//cgo 最终需要的是libxx.a文件 且必须lib开头命名
#cgo LDFLAGS: -L /clib -lxx
#include "clib/xx.h"
*/
import "C"
func main() {
C.fun() //fun为xx.c中的函数名
}
示例
目录结构
root
- clib
- a.c
- a.h
- main.go
a.c
#include <stdio.h>
void A();
void A(){
printf("hello c \n");
}
a.h
#ifndef A_H
#define A_H
void A();
#endif
main.go
package main
/*
#cgo LDFLAGS: -L /clib -la
#include "clib/a.h"
*/
import "C"
func main() {
C.A()
}
clib目录下依次执行cmd命令
gcc -c a.c
ar -cru liba.a a.o
最后执行
go run