CGO - 当c文件在子文件夹中时未定义引用'...'

时间:2016-02-09 15:15:19

标签: c gcc go cgo

我有一些C文件,我已经使用cgo包含在我的go项目中。当它们位于我的go包的根文件夹中时,我的导入如下所示:

/*
#cgo CFLAGS: -std=c99 -I .
#include <stdlib.h>
#include <gopcua_client.h>
*/
import "C"

这构建很好,一切正常。但是,我想将.c和.h文件移动到子文件夹 ./include 。我尝试了这个,并将导入更改为:

/*
#cgo CFLAGS: -std=c99 -I ./include
#include <stdlib.h>
#include <gopcua_client.h>
*/
import "C"

现在我在go文件中使用的每个C函数都出错:

/tmp/go-build184824875/github.com/coussej/gopcua/_obj/gopcua.cgo2.o: 
In function `_cgo_38ec0a5d28b6_Cfunc_gopcua_read_int32':
./gopcua.go:116: undefined reference to `gopcua_read_int32'

我不熟悉C,所以我在这里很黑。提前谢谢。

0 个答案:

没有答案