猿问

golang:cgo extern 不起作用

我正在尝试使用以下示例为 golang 运行 cgo(在go-wiki -> Global Functions 中给出):


foo.go 文件:


package gocallback


import "fmt"


/*

#include <stdio.h>

extern void ACFunction();

*/

import "C"


//export AGoFunction

func 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是undefined?或者我错过了什么?


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


慕妹3146593
浏览 311回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答