2015-08-31 36 views
6

Yükseltme işlemi tamamlandıktan sonra OS X üzerinde git2go kütüphanesini derledikten sonra 1.4.2 sürümüne gidiyorum.1.5 çapraz derlemek OS X için cux linux ve pencerelere kullanarak

Bu, go 1.5 ile C kodu kullanan herhangi bir go uygulamasının çapraz derlemesiyle ilgili olduğunu düşünüyorum. CGO_ENABLED=1 kullanma

, alıyorum:

$ CGO_ENABLED=1 GOOS=linux GOARCH=amd64 ./script/with-static.sh go install ./... 
# runtime/cgo 
ld: unknown option: --build-id=none 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

-compiler=gccgo kullanarak, alıyorum:

$ GOOS=linux GOARCH=amd64 ./script/with-static.sh go install -compiler gccgo ./... 
go build github.com/libgit2/git2go: : fork/exec : no such file or directory 

olanların herhangi tedarik Değilse, alıyorum:

$ GOOS=linux GOARCH=amd64 ./script/with-static.sh go install ./... 
can't load package: package github.com/libgit2/git2go: C source files not allowed when not using cgo or SWIG: wrapper.c 

I yüklü homebrew kullanarak gitmek, ve ben var varsayılan ~/go konumuna işaret eden $GOPATH, hiçbir şey fantezi. Çapraz derleme sırasında cgo, varsayılan olarak etkin değildir

+1

linux için derlemek için önemsiz olmalıdır qemu veya virtualbox üzerinde kemer linux kurma ve takip edebilirsiniz * benim * [kılavuzu] (http://www.limitlessfx.com/cross-compile-golang-app-for- windows-from-linux.html) oradan pencerelere çapraz derleme. – OneOfOne

+1

Eğer 1,5 kullanıyorsanız, muhtemelen son derleme adımına geçmek isteyebilirsiniz. yorumunuz çok yardımcı oldu @OneOfOne – OneOfOne

+1

, bu bir Linux kabından Windows için derlemek geçmeye oldukça kolaydır. Teşekkürler. – Calin

cevap

9
. Eğer cgo'yu etkinleştirirseniz, CGO_ENABLED = 1 ile hedef makine için çapraz derleme c derleyicisine sahip olmanız gerekir. Bu önemsiz değil.

Doğal olarak derlemek için cgo'ya ihtiyacınız varsa öneririm. Eğer CGO çapraz derleme gerekiyorsa

0

, ben gayet yararlı buldu xgo, sizi işaret ediyorum. Benim kullanım durumları% 100'ünde çalışır, ancak bazı minör ile benim yasasında yapılacak değişiklikler (çapraz derleme için yerli VM'lere muhafaza kıyasla) yoktu, bu yeterli oldu.