我在构建一个相当简单的本地CGO项目时遇到问题。考虑这个只有3个文件(glut.go,support.c和support.h文件)的非常小的CGO软件包-如果我刚得到它,这些文件将下载到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并进行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一样工作?
- 1 回答
- 0 关注
- 214 浏览
添加回答
举报
0/150
提交
取消