我是靠谱客的博主 俊秀汽车,最近开发中收集的这篇文章主要介绍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的效率 golang_golang学习之cgo所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部