Gcc 不';";“去拿”;只需获取文件,然后cgo+&引用;“去建造”;他们?显然不是

Gcc 不';";“去拿”;只需获取文件,然后cgo+&引用;“去建造”;他们?显然不是,gcc,windows-7,mingw,go,cgo,Gcc,Windows 7,Mingw,Go,Cgo,我在构建一个相当简单的本地CGO项目时遇到了一个问题。只考虑3个文件(GLUTGO,Suf.c和Suff.h文件)——如果我只是 Go获取< /强>,这些文件被下载到 C:\Go\src\pkg\github.com\zombiezen\Go-GLUT\glut 然后,一些秘密魔法发生了,go get构建了以下输出文件: C:\Go\pkg\windows_amd64\github.com\zombiezen\Go-GLUT\glut.a 但是,如果我将三个源文件复制到\mytmp,将cd复

我在构建一个相当简单的本地CGO项目时遇到了一个问题。只考虑3个文件(GLUTGO,Suf.c和Suff.h文件)——如果我只是<强> Go获取< /强>,这些文件被下载到

C:\Go\src\pkg\github.com\zombiezen\Go-GLUT\glut
然后,一些秘密魔法发生了,go get构建了以下输出文件:

C:\Go\pkg\windows_amd64\github.com\zombiezen\Go-GLUT\glut.a
但是,如果我将三个源文件复制到\mytmp,将cd复制到\mytmp和go build-o glut.a glut.go,我会收到大约40-60条错误消息,如下所示:

C:\Users\roxor\AppData\Local\Temp\go-build191975110\command-line-arguments\_obj\glut.cgo2.o: In function `_cgo_b46885fb7c57_Cfunc_goCreateMenu':
./glut.go:195: undefined reference to `goCreateMenu'
如果我使用-x命令行参数运行go get,我可以看到support.c在构建过程中被选中,并提供给gcc:

gcc -I . -g -O2 -m64 -mthreads -I $WORK\github.com\zombiezen\Go-GLUT\glut\_obj\ -o $WORK\github.com\zombiezen\Go-GLUT\glut\_obj\support.o -c .\support.c

但是,使用go build-x,情况并非如此,将跳过support.c。为什么?我如何调用go build以完全像go get那样工作?

只是执行
go build
而不是
go build Some File。go
就可以了。现在很明显…

解决了。只需执行“go build”而不是“go build somefile.go”即可。现在很明显。。。我怎么会错过呢?案例结束。请回答您自己的问题并接受它,而不是将其作为评论,这样它会被标记为已接受而不是“未回答”