Isso é variável para o ciclo de lançamento, versões e suporte de pacote, bem como a compilação gcc e llvm da Apple. A maior parte disso é adaptado de ‘Go Cross Compilation on Mavericks’ de Paul Crawford e do pacote goxc README .
gcc
Suporte da Apple
brew update
brew tap homebrew/dupes
brew install apple-gcc42
cd /usr/bin
sudo mv gcc gcc_mavericks
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 gcc
gcc
Pedir gcc
deve retornar i686-apple-darwin11-gcc-4.2.1: no input files
.
Construir a partir da fonte
Nesse caso, construirei o candidato a lançamento mais recente para facilitar o suporte do goxc
pacote; consulte a nota no README sobre o uso go1.2rc5
. Caso contrário, observei onde a versão atual estável seria usada.
curl https://go.googlecode.com/archive/go1.2rc5.zip #point to stable current
tar -zxvf go1.2rc5.zip #untar stable current
cd go-b3d5a20b070a/src #normally this would be stable current
./all.bash #build go
Se estiver usando uma versão não atual, o caminho para ir para o binário nessa versão específica precisa ser adicionado. Caso contrário, o caminho seria parecido com export PATH=$PATH:/Users/jbowles/go/bin
ou onde quer que você vá.
go version
Solicitando a versão Go deve retornar go version go1.2rc5 darwin/amd64 #or whatever version was built
.
Não se esqueça de instalar as ferramentas go comuns: consulte o repositório de ferramentas go ou a fonte de ferramentas de linha de comando específica . Então instale o goxc
pacote
go get code.google.com/p/go.tools/cmd/godoc #documentation tool
go get github.com/laher/goxc #get goxc package
goxc -t #compile against supported platforms
O que goxc -t
faz pode ser encontrado em detalhes na página do github, mas basicamente ele compila e constrói o conjunto de ferramentas completo para TODAS as plataformas suportadas.
Na compilação mais recente, isso inclui pacotes, comandos, compiladores e ferramenta de bootstrap Go
- para host, darwin / amd64
- para darwin / 386
- para linux / 386
- para linux / amd64
- para linux / arm
- para freebsd / 386
- para freebsd / amd64
- para freebsd / arm
- para openbsd / 386
- para openbsd / amd64
- para windows / 386
- para windows / amd64
- para netbsd / 386
- para netbsd / amd64
- para netbsd / arm
- para o plano 9/386
E procurando /Users/jbowles/go-b3d5a20b070a/bin
, encontramos:
Conclusão
Eu usei um branch Go personalizado para ilustrar isso, portanto, trabalhar de volta do exemplo personalizado para a versão estável mais padrão deve ser fácil.