【问题标题】:golang 1.6 cross compilegolang 1.6 交叉编译
【发布时间】:2016-07-17 15:46:47
【问题描述】:

在 golang 1.6 中,当我从我的 64 位架构交叉编译到 Linux 的 32 位时,go install 命令将可执行文件放入bin/linux_386/<exe>

有没有办法把它放到bin/ 中呢?如果我在 32 位环境中构建,那么它将进入 bin/。我希望 exe 进入同一位置,无论我是在沙箱外交叉编译为 32 位,还是在 32 位沙箱内本机编译。

我现在的解决方法是将linux_386 目录软链接到.,如ln -s . linux_386

【问题讨论】:

  • Go 试图避免将不兼容的二进制文件放入 PATH 中。放在 bin/linux_386 目录有什么问题?
  • 我有两种方法来构建可执行文件。 32 位沙箱中的一个使用 32 位版本的 go。沙盒之外的一个使用交叉编译的 64 位版本的 go。我希望两者都将可执行文件放在同一位置。

标签: go cross-compiling


【解决方案1】:

你不能使用 go install,但是你可以手动完成:

 go build -o $GOPATH/bin/<exe> $GOPATH/src/your/<pkg>

【讨论】:

  • 另外添加-i选项会安装过期的依赖,基本上给你go install的行为
猜你喜欢
  • 1970-01-01
  • 2017-05-24
  • 2023-02-01
  • 2011-03-13
  • 2014-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多