我有一个非常简单的设置:一个 .go 文件(test.go)和一个 .c 文件(PMDK.c)。我在 Go 中包含 .c 文件,如下所示:
测试.go:
package main
/*
#include "PMDK.c"
#cgo pkg-config: libpmem
*/
import "C"
func main() {
C.helloWorld()
}
当我运行go run test.go时,它只构建一次。无论我对PMDK.c做什么更改,我的程序每次都具有完全相同的行为。
我还尝试了 go build test.go,这导致了相同的结果。最后,在CGo 不编译同一目录中的 C 文件之后,我只是去构建。这不起作用,因为我必须创建一个 .mod 文件(go build test.go)。然后,问题是PMDK.c中的三个函数(helloWorld和另外两个)据说被定义了多次。我不能让它建立我的改变。顺便说一句,如果我将源文件复制/移动到另一个目录并在那里构建它们,则更改将适用(仅一次,再次)。