2016-05-28 2 views
3

Всякий раз, когда я пытаюсь использовать «go install» после настроек goarch, goos и gobin, я получаю «невозможно установить кросс-скомпилированные двоичные файлы при установке GOBIN», но не понимаю почему?Здание для ARM?

Какой самый простой способ создать для arm linux?

+0

Пытались ли вы с командой' build', вместо 'install'? например 'GOARCH = arm go build'? – noisypixy

ответ

4

Вы можете использовать команду идти построить вместо:

env GOOS=android GOARCH=arm64 go build -o /arm64bins/app 

Доступен GOOS/GOARCH «s в Go 1.7:

➜ go tool dist list | grep arm                     05/29/16 
android/arm 
android/arm64 
darwin/arm 
darwin/arm64 
freebsd/arm 
linux/arm 
linux/arm64 
nacl/arm 
netbsd/arm 
openbsd/arm 
plan9/arm 
2

это работает для меня (кросс-компиляции из Win64 в Linux ARM6):
Я первый набор их в терминале:

set GOARCH=arm 
set GOBIN=D:\work\go\bin 
set GOEXE= 
set GOHOSTARCH=amd64 
set GOHOSTOS=windows 
set GOOS=linux 
set GOPATH=D:\work\go 
set GORACE= 
set GOROOT=c:\go 
set GOTOOLDIR=c:\go\pkg\tool\windows_amd64 
set GO15VENDOREXPERIMENT=1 
set CC=gcc 
set GOGCCFLAGS=-fPIC -marm -fmessage-length=0 
set CXX=g++ 
set CGO_ENABLED=0 

, а затем просто:
идти строить
и генерирует двоичный выход для target (ok).
затем скопируйте двоичный вывод в целевую систему и запустите.
Я думаю, вы должны использовать «go build», а не «go install» для кросс-компиляции.

+0

Вам действительно не нужно столько переменных. Если вам не нужен CGO, то gcc не нужен. Для go строится только вам нужно установить GOOS, GOARCH и GOARM – creker

+0

@creker: да, моя IDE установлена ​​автоматически (для общего случая) –