c和go 两种语言结合使用 (一)

为何结合两者

c 语言的强大之处在于使用很多底层库,性能高,语言简洁,设计上和架构上来说更为直接,而go语言像httpserver,webrtc等已经做得很好了,协程方面也封装了细节,程序员不用关心如何调整cpu和线程, 如果说两者结合,更能直接达到我们想要的效果。

go语言

比如嵌入ffmpeg来进行编解码
// #include “videostreamer.h”
// #include <stdlib.h>
// #cgo LDFLAGS: -lavformat -lavdevice -lavcodec -lavutil
// #cgo CFLAGS: -std=c11
// #cgo pkg-config: libavcodec

以上是嵌入了ffmpeg的库,我们先用简单的例子来嵌入简单的c,以作示例
/*
#include <stdio.h>
#include <stdlib.h>
int num = 0;
*/
import “C”

func main(){
a := int(C.num)
fmt.Println(a)
}

mingw

若在windows上,可能出现
exec: “gcc”: executable file not found in %PATH%
我们必须安装mingw,地址
mingw安装地址
mingw64 官方网站
安装完成,在进行运行就行了,因为go语言并不自带c编译器,所以调用的是外部gcc编译。

c

加入c后的go语言更为突出亮点,其他语言并无此直接调用的好处。

package main
/*
#include <stdio.h>
#include <stdlib.h>
void hello_world() {
        printf("I am the monkey!\n");
}
*/
import "C"
func main() {
        C.hello_world()
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qianbo_insist

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值