golang:cgo extern无法正常工作

golang:cgo extern无法正常工作,第1张

概述我试图使用以下示例运行gogo for golang(在 go-wiki -> Global Functions给出): foo.go文件: package gocallbackimport "fmt"/*#include <stdio.h>extern void ACFunction();*/import "C"//export AGoFunctionfunc AGoFun 我试图使用以下示例运行gogo for golang(在 go-wiki -> Global Functions给出):

foo.go文件:

package gocallbackimport "fmt"/*#include <stdio.h>extern voID ACFunction();*/import "C"//export AGoFunctionfunc AGoFunction() {        fmt.Println("AGoFunction()")}func Example() {        C.ACFunction()}

foo.c文件:

#include "_cgo_export.h"voID ACFunction() {    printf("ACFunction()\n");    AGoFunction();}

运行此示例时,我收到以下错误:

# command-line-arguments/tmp/go-build770916112/command-line-arguments/_obj/foo.cgo2.o: In function    `_cgo_3234419c4c2a_Cfunc_ACFunction':./foo.go:36: undefined reference to `ACFunction'collect2: ld returned 1 exit status

我无法追查这一点.为什么ACFunction未定义?还是我错过了什么?

去版本:
去版本go1.1.2 linux / 386

解决方法 根据问题评论,似乎你试图用go run foo.go构建和运行程序.

这运行失败:无法运行非主程序包错误,但将程序包名称转换为main并添加主函数确实会重现问题中的错误.这似乎是因为它试图只编译foo.go文件而不是编译伴随的foo.c文件.

如果您将文件放在$GOPATH / src下的目录中并使用go build packagename来构建程序,它应该成功构建包中的所有源文件.

总结

以上是内存溢出为你收集整理的golang:cgo extern无法正常工作全部内容,希望文章能够帮你解决golang:cgo extern无法正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1264990.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存