Golang跨平台编译时出现未定义错误

5

可能有些显而易见,我正在OSX上构建Linux二进制文件,这个命令在另一个项目中可以工作,但是:

GOOS=darwin GOARCH=amd64 go build -v gitlab.com/project/project-data-convertor

返回无误

GOOS=linux GOARCH=amd64 go build -v gitlab.com/project/project-data-convertor
gitlab.com/project/project-data-convertor
# gitlab.com/project/project-data-convertor
./utils.go:253:50: undefined: beamLocation
./utils.go:278:36: undefined: beamLocation
./utils.go:278:50: undefined: beamLocations
./utils.go:278:50: too many errors

1
如果您在没有标志或项目的情况下运行(GOOS=linux GOARCH=amd64 go build),是否会出现相同的错误? - Lucas
1
如果您只运行 go build(不使用环境变量),是否会出现相同的错误? - phonaputer
1
utils.go 文件顶部是否可能有构建约束?例如 //-build linux 或者 //+build darwin?可能还有其他组合可以在 OSX 上构建成功,但在 Linux 上无法工作。 - sorens
1个回答

0

我知道回答这个问题有点晚了,但是在我的情况下,这个问题来自于C模块的导入。对于那些遇到跨平台编译问题的人,请检查一下您是否导入了C模块:正常情况下应该可以解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接