我有一些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,所以我在这里很黑。提前谢谢。