我是靠谱客的博主 俊秀汽车,这篇文章主要介绍cgo的效率 golang_golang学习之cgo,现在分享给大家,希望可以做个参考。

package main

/*

#include

#include

*/

import "C"

import "unsafe"

func main() {

cstr := C.CString("HELLO, WORLD")

C.puts(cstr)

C.free(unsafe.Pointer(cstr))

}

说说我遇到的坑吧

虽然go在格式上要求严格,但是有些地方真的不是很人性化,不知道是我的操作有问题,还是怎么,哎

注意:

我使用的ide是liteide,写完代码尝试编译好几次,都报错,报错如下:

# testGcc

could not determine kind of name for C.free

could not determine kind of name for C.puts

这里需要注意的是:

/*

#include

#include

*/

import "C"

import "unsafe"

import “C” 与上面的C代码不能有多余的空行,并且 import “C” 必须是 第一个导入。

还有一个问题,当我们需要依赖一个非C标准库呢?如果按照上述方法的话,会有链接错误。

解决方法:

1、第一种方法

/*

#cgo CFLAGS: -I .

#cgo LDFLAGS: -L . -lrtmp

#include

#include "rtmp.h"

*/

import "C"

2、第二种方法

/*

#cgo pkg-config: rtmp cairo

#include "rtmp.h"

*/

import "C"

有疑问加站长微信联系(非本文作者)

5c5fbae790ec0313d6ee17e8b3dd9ba1.png

最后

以上就是俊秀汽车最近收集整理的关于cgo的效率 golang_golang学习之cgo的全部内容,更多相关cgo的效率内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部