Build go cross compile no OS 10.9

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 .

gccSuporte 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 gccdeve 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 goxcpacote; 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/binou 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 goxcpacote

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 -tfaz 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:

Instalações binárias

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.