Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Go言語でHelloWorldを実行しようとしたらエラーになった

Hello world が出来なかった

業務でGolangを使用する機会がありました。
本格的には触らなかったので、とりあえず自習しようとしました。

  • とりあえずhello.goを作ってhello worldを表示しようとします。
$ go run hello.go
exec: "C:\\Users\\xxxxx\\AppData\\Local\\Temp\\go-build929698758\\b001\\exe\\hello": file does not exist

ああ??なんだこれ?hello World で死ぬか?普通?ってなったわけです。

失敗した原因

とりあえず build だけやってみる

xxxxx@xxx MSYS /c/Users/xxxxx/Documents/test/go
$ go build hello.go

xxxxx@xxx MSYS /c/Users/xxxxx/Documents/test/go
$ ls
hello  hello.go
  • バイナリ?が windows のじゃない!!

windowsで実行するなら

$ ls
hello.exe  hello.go

ができるのが正解ですよね~

こうなる原因が環境変数のGOOSでした。

$ env | grep GOOS
GOOS=linux

こうなっていたわけですよ。このGOOS=linuxがいけなかった。
業務中にテキトーに設定したのがいけなかった。
GOOS=linuxって環境変数を設定しているとbuildして作られるバイナリファイルがLinux向けに作られるっぽい?
MSYS2またはgit-for-windows上でなら実行できるのでは?とか思ったのですがエラーでしたね。
てことで、

どうすれば良いのか

GOOSを変えます

$ export GOOS=windows
# cmdだったら以下
set GOOS=windows

をした後に build すると
hello.exe が生成されますよっと。
これで解決。
GOOS=windowsに設定するのが正しいのかは知らない。
もうこの環境変数消した方がいいのかな。

unkomorasi01
プログラマー(薄給)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away