24
Supponiamo che io sia principalmente un utente Linux, ma sto sviluppando un'applicazione in Go che voglio essere multipiattaforma. Ho cercato in giro, ma io non riesco a trovare le informazioni di assolvere il seguente:I binari di Golang sono portatili?
- Se io
go install
un binario sul mio sistema Ubuntu amd64, funzionerà anche su chiunque altro a 64-bit di Ubuntu/Sistema Debian? - Come è possibile utilizzare
go install
per creare un binario x86_64 che verrà eseguito anche in Debianlikes a 32 bit? - Se devo usare Windows per creare un binario che verrà eseguito su Windows, come posso anche assicurarmi che anche se il mio sistema Windows è a 64-bit, l'eseguibile verrà creato per x86_64?
Le mie domande in effetti si riducono a "quanto è statico/portatile il linker/compiler di go?"
io non sono sicuro di quello che stai chiedendo . I binari sono portatili tra sistemi con lo stesso sistema operativo e architettura. Go crea il file binario per il tuo host GOOS e GOARCH a meno che tu non specifichi diversamente. Non puoi prendere un binario a 64 bit ed eseguirlo su un sistema a 32 bit. – JimB
Questa non è stata la mia esperienza con la creazione di binari che sono pensati per essere multipiattaforma. – cat
Per rispondere alla tua domanda: "Niente affatto". Semplicemente perché questo è impossibile da fare. Nessun compilatore/linker/loader/toolchain può farlo. Compilazione incrociata di Google che è banale con Go. – Volker