Kompilasi silang: pengguna: Saat ini tidak diterapkan di linux/amd64

Saya mengkompilasi program Go berikut pada kotak linux/amd64:

package main

import (
    "fmt"
    "os/user"
)

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

Ini berfungsi dengan baik. Tetapi ketika saya melakukan kompilasi silang dari kotak Mac, saya mendapatkan kesalahan berikut ketika saya menjalankan program itu di kotak linux saya:

user: Current not implemented on linux/amd64

Bagaimana cara mengkompilasi silang dan menggunakan fungsi Saat Ini dalam paket os/user?


Sunting 1: Saya harus menambahkan bahwa ini adalah instruksi yang saya gunakan untuk menyiapkan kompilasi silang di kotak Mac saya: https://code.google.com/p/go-wiki/wiki/WindowsCrossCompiling


Sunting 2: kompilasi silang untuk windows/386 berfungsi dengan baik.


person topskip    schedule 16.12.2013    source sumber
comment
Versi Go mana yang Anda gunakan? Linux yang mana?   -  person Volker    schedule 16.12.2013
comment
@Volker Saya menggunakan go version go1.2 darwin/amd64 dan mencoba menjalankannya di Ubuntu 12.04 LTS (Linux xxx 3.2.0-24-generic #39-Ubuntu SMP Mon May 21 16:52:17 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux)   -  person topskip    schedule 16.12.2013
comment
saya memiliki masalah yang sama, saya memiliki Linux Fedora 20, golang dari RPM, go version go1.2.2 linux/amd64 dan memiliki masalah yang sama? saya mengkompilasi di linux untuk linux. Bagaimana cara menghindari masalah ini?   -  person vodolaz095    schedule 24.08.2014


Jawaban (1)


Hal ini disebabkan oleh Masalah 6376: pengguna. Kepanikan saat ini di darwin-amd64 saat dikompilasi silang dari linux-amd64:

os/pengguna bergantung pada cgo, dan cgo dinonaktifkan untuk kompilasi silang, oleh karena itu hal ini diharapkan.

jika Anda menggunakan os/pengguna, Anda harus mengkompilasi secara native di OS X.

bahkan jika kita mengaktifkan dukungan kompilasi silang cgo, saya ragu semua orang memiliki rantai alat lintas OS X yang berfungsi di mesin linux mereka.

Status: Bekerja Sesuai Tujuan

person Intermernet    schedule 16.12.2013
comment
Sayang sekali saya harus menerima jawaban Anda ;-) Terima kasih banyak. - person topskip; 16.12.2013
comment
Dalam cara realistis apa Go bisa disebut kompilasi silang? - person Julie in Austin; 23.03.2018