为了账号安全,请及时绑定邮箱和手机立即绑定

难道不是“去获取”只是获取文件,然后cgo +“去构建”它们吗?显然不是

难道不是“去获取”只是获取文件,然后cgo +“去构建”它们吗?显然不是

Go
桃花长相依 2021-04-30 14:58:57
我在构建一个相当简单的本地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 回答

?
白衣非少年

TA贡献1155条经验 获得超0个赞

只是做go build而不是go build somefile.go做。现在如此明显……


查看完整回答
反对 回复 2021-05-10
  • 1 回答
  • 0 关注
  • 214 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信