交叉编译:“用户:目前未在linux / amd64上实现”

时间:2013-12-16 11:08:29

标签: go cross-compiling

我在linux / amd64盒子上编译了以下Go程序:

package main

import (
    "fmt"
    "os/user"
)

func main() {
    fmt.Println(user.Current())
}

这很好用。但是当我从Mac盒子中交叉编译它时,我在linux盒子上运行该程序时出现以下错误:

user: Current not implemented on linux/amd64

如何交叉编译使用包os/user中的当前函数?


编辑1: 我应该补充一点,这些是我用来在Mac机上设置交叉编译的说明:https://code.google.com/p/go-wiki/wiki/WindowsCrossCompiling


编辑2:为windows / 386交叉编译工作正常。

1 个答案:

答案 0 :(得分:19)

这是由于Issue 6376: user.Current panic in darwin-amd64 when crosscompiled from linux-amd64

  

os / user依赖于cgo,并禁用cgo进行交叉编译,   因此这是预期的。

     

如果使用os / user,则必须在OS X上进行本机编译。

     

即使我们启用了交叉编译cgo支持,我也怀疑每个人都有   在他们的linux机器上运行OS X交叉工具链。

     

状态:WorkingAsIntended