本文主要记录一些之前在项目中使用cgo调用C语言的方法和遇到的一些问题。
在go文件中写c代码
使用cgo时需要先import “C”,然后在上面的注释部分内(/…/)写C代码。其中可以通过CFLAGS和LDFLAGS来指定编译参数。如下代码。
package main
/*
#cgo CFLAGS: -I.
#cgo LDFLAGS: -L.
#include <stdio.h>
void print_something()
{
printf("hello world\n");
}
*/
import "C"
func main(){
C.print_something()
}
go调用c动态库
代码如下。
@func.h
#ifndef _FUN_H_
#define _FUN_H_
void print_something()