2011-10-16 1 views
2

저는 x86 및 x86-64 아키텍처의 Windows, Mac 및 Linux 시스템에 다소 널리 배포 될 소프트웨어를 작성하고 있습니다. Mac 및 Linux 시스템에서 Go 컴파일러를 설정할 때마다 필자는 6g 만 만들었습니다. Windows에서 나는 8g을 사용하는 사전 빌드 된 실험 바이너리를 사용합니다.Go에서 8g 및 6g Go 컴파일러를 빌드하는 방법

빌드 서버를 설치할 때 32 비트 빌드도 생성 할 수 있도록 8g도 빌드해야한다고 가정합니다. Mac에서는 8g을 어떻게 설정합니까 (얼마나 오래되었는지에 따라 x86 또는 x64 일 수 있기 때문에).

답변

1

또 다른 포스터로 말하면, GOARCH을 사용하십시오. 그가 말하지 않은 것은 다중 디렉토리가 필요 없다는 것입니다. 두 번

실행 all.bash, 같은 GOROOT : 당신이 GOARCH을 설정 gomake 뭔가를 빌드 할 때

GOARCH=amd64 ./all.bash 
GOARCH=386 ./all.bash 

기본 불행하게도 goinstall 아직 GOARCH을 존중하지 않는 당신에게

GOARCH=386 gomake 

에 적합하지 않는 경우 .

gc 컴파일러는 항상 크로스 컴파일입니다. 필요한 아키텍처 용 컴파일러를 얻은 다음 GOOS을 설정하고 패키지를 $GOROOT/src/pkg에 빌드하면 모든 운영 체제 또는 아키텍처를 대상으로 소프트웨어를 빌드 할 수 있습니다.

GOARCH=386 GOOS=windows gomake 
+0

우수함, 그래서 gofix, gofmt와 같은 모든 "도우미"명령은 어떻게됩니까? 그들은 단지 내가 사용한 마지막 GOARCH로 구축 되었습니까? 따라서 x64 컴퓨터에서 개발할 경우 386을 먼저 작성한 다음 amd64로 전환하여 두 컴파일러를 모두 사용할 수 있지만 도구는 모두 64 비트입니다. – Nate

+0

예, 도우미 도구는 항상 빌드되므로 GOARCH 아키텍처를 갖기 때문에 64 비트 도우미 도구를 원하면 나중에 386을 빌드하고 나중에 amd64를 빌드 할 수 있습니다. –

+0

이 답변은 ** 매우 ** 구식입니다. 더 이상 'gomake'또는 'goinstall'이 없습니다. 'go build'와'go install'은'GOOS'와'GOARCH'를 잘 다룰 뿐이므로 여러 개의 디렉토리가 필요하지 않습니다. –

3

all.bash 빌드 스크립트로 amd64을 자동 선택하는 대신 GOARCH386으로 설정해야합니다. 자세한 내용은 Go 문서의 environment variables을 참조하십시오.

+0

그렇다면 32 비트와 64 비트 바이너리 모두를 빌드/설치 하시겠습니까? 별도의 디렉토리에 그들을 빌드하고 빌드 사이에 vars을 변경 ??? 그게 효과가 있다고 생각합니다. 스크립트를위한 좋은 기회 인 것 같습니다. – Nate