2013-05-14 38 views
16

Ho codificato un programma Go in un sistema a 64 bit ma voglio compilare un binario a 32 bit! Come posso farlo? Il binario a 64 bit funziona alla grande ma non ho idea di come creare un binario a 32 bit. Sarei molto grato se qualcuno potesse aiutarmi in questo!Compilare binario a 32 bit su sistema a 64 bit

Grazie in anticipo!

PS: sto usando Windows OS.

+0

Che IDE stai utilizzando? –

+0

Non sto usando nessun IDE. Solo un editor di testo e la riga di comando. Ad ogni modo, è possibile compilare go code in VS? – pluralism

+1

Prova a utilizzare la variabile di ambiente GOARCH come descritto qui: http://stackoverflow.com/questions/7786492/how-do-you-build-the-8g-and-6g-go-compilers-for-go –

risposta

16

Se hai creato il tuo Go dal sorgente, puoi creare compilatori e librerie aggiuntivi per qualsiasi CPU e sistema operativo. Se siete su Windows/amd64 e vuole costruire per Windows/386, allora questo sarà costruire tutto il necessario per la compilazione per Windows/386:

set GOARCH=386 
cd %GOROOT%\src 
make.bat --no-clean 

Una volta fatto questo, è possibile costruire le finestre/386 eseguibile con:

set GOARCH=386 
cd %YOUR_PROG_DIR% 
go build 

Dal momento che siete su Windows/amd64, si dovrebbe essere in grado di eseguire/testare le vostre finestre/386 programmi troppo anche. Assicurati semplicemente di set GOARCH=386 prima di invocare qualsiasi comando per windows/386.

Un avvertimento: questo non supporta cgo, quindi non è possibile utilizzare alcun pacchetto che utilizza cgo.

+1

Se corri "vai build -a ", invece, è necessario eseguire" make.bat "all'interno della directory GOROOT? – noj

+0

@noj Non sono sicuro della tua domanda? Ma si esegue make.bat una volta per creare tutti i compilatori e pacchetti standard. Dopo di che puoi semplicemente usarli. – alex

+0

'make.bat' è la vecchia versione 1.4 ... come pulire la nuova versione 1.8.3? – KingRider

3

Ok, ho finalmente risolto il problema! Ecco come l'ho fatto (stavo miseramente fallendo nella realtà!).

La prima cosa che ho fatto è stato scaricare GCC da http://www.mingw.org/. Quindi aggiungere C: \ MinGW \ bin alla variabile di ambiente PATH (presumo che MinGW sia installato in C: \ MinGw) La prossima cosa prima di eseguire go/get install è impostare le variabili di ambiente. Aprire il prompt dei comandi e andare a C: \ Go \ src ed eseguire all.bat dalla riga di comando. Quindi devi impostare GOOS, GOARCH e CGO_ENABLED su windows, 386 e 0 rispettivamente! (Devi anche impostare GOPATH sul percorso in cui si trova il tuo attuale progetto Go). Prossima esecuzione make.bat e make.bat --no-clean Dopodiché puoi costruire il tuo progetto per sistemi a 32 bit! Spero che questo sia utile!

6

Il modo in cui ho raggiunto questo (senza alcuna compilazione del compilatore) sul mio Windows 7 a 64 bit PC per la prima volta avendo le finestre AMD64 installato, quindi download 32bit zip e decomprimere in una seconda cartella:

\go\go32 
\go\go64 

A quel punto la regolazione della PATH e la GOROOT dentro la mia finestra del prompt dei comandi come segue:

set PATH=\go\go32;%PATH% 
set GOROOT=\go\go32\ 

poi sono tornato e ricompilati mia app che è stato in precedenza la compilazione utilizzando il bit 64. Tutto ciò può essere impostato in un lotto se si desidera passare da uno all'altro.

+0

Ha funzionato per me, ma ho dovuto impostare il PERCORSO nella cartella go32 \ BIN. – user3523091

Problemi correlati