Go 1.2をWindowsマシンにインストールし、ダミープログラムを作成して、環境変数GOARCH
とGOOS
をそれぞれ「AMD64」と「linux」に設定しました。
「go build
"コマンド、エラーが表示されます。
go build runtime: linux/AMD64 must be bootstrapped using make.bat
これは何を意味するのでしょうか?
使用する前にすべてのツールを構築する必要があることを示しています。
Windows GOARCHがAMD64の場合、この小さなバッチプログラムを実行することにより、必要なすべてのツールを「ビルド」できます。
set GOARCH=AMD64
set GOOS=linux
go tool dist install -v pkg/runtime
go install -v -a std
それが成功したら、説明したことを実行できるはずです(AMD64ではなく、AMD64を使用してください-大文字と小文字が区別されます)。
Windows GOARCHが386の場合、最初に386ツールをビルドする必要があります。そのためには、mingw gccをダウンロードする必要があります。 user2714852が言ったことをしてください。
ここ https://golang.org/wiki/WindowsCrossCompiling はLinux向けの同様の手順です。おそらく役立つでしょう。
アレックス
PowerShell環境変数を使用するには(管理モードは不要)を使用します:$env:GOOS = "linux"
プログラムをビルドするよりgo build
変更された環境変数は、現在のPowerShellウィンドウにのみ存在します。ウィンドウを再度開くと、すべてがリセットされます。
私は、WindowsからLinuxをビルドする際にいくつかの大きな問題を抱えていました。結局のところ、それはかなり簡単でした。私はアレックスの投稿にコメントしますが、私はstackoverflowの初心者なのでできません。
アレックスが言ったように、 環境変数 を設定します。これは管理者として実行する必要があります(たとえば、「コマンドプロンプト」または「Powershell」ショートカットを右クリックし、「管理者として実行」をクリックします)
set GOARCH=AMD64
set GOOS=linux
管理者として実行しないと、変数は有効にならず、現在使用しているOSとアーキテクチャ用に変数を作成するだけです。
Go envを実行してgo環境変数をチェックすると、現在のgo環境変数のリストが表示されるので、常に良いことがわかりました
go env
set GOARCH=AMD64
set GOBIN=
set GOEXE=
set GOHOSTARCH=AMD64
set GOHOSTOS=windows
set GOOS=linux
set GOPATH=T:\Projects\gopath
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_AMD64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-fPIC -m64 -fmessage-length=0
set CXX=g++
set CGO_ENABLED=0
set PKG_CONFIG=pkg-config
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
GOOS&GOARCHが前に指定した値に設定されていることを確認してください。
それで十分であれば、goコードを含むディレクトリに移動し、コマンドラインから次のコマンドを実行できます。
go build
環境変数に設定されているシステムとアーキテクチャのパッケージを構築します。
これをようやく理解した後、他の問題に遭遇しましたが、それはこの問題に関係のない別の問題です。
Goをクロスコンパイルするには、ソースコードからGoをビルドできる必要があります。そのためには、MinGWをインストールしてgccやその他のツールを入手する必要があるようです。それに関するヘルプは https://code.google.com/p/go-wiki/wiki/WindowsBuild にあります。
そこから、Linuxクロスコンパイルのような場合の方法を次に示します。
最初にcd
をgo\src
ディレクトリに追加します。どこにあるかわからない場合は、go env
と入力すると、出力にGOROOT="\some\dir\"
のような行が表示されます。 cd \some\dir\src\
するだけです
次に、GOOS=linux
とGOARCH=AMD64
を設定して、.\make.bat
と入力します。これにより、Linuxを対象としたGoコンパイラーなどのバージョンが構築されます。その後、このエラーはもう発生しないはずです。