質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Q&A

解決済

1回答

953閲覧

go build . errorsでなぜxxx.exeが作成されないのかが分からない

rapan931

総合スコア13

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

0グッド

0クリップ

投稿2018/11/19 11:28

環境

go version go1.9.1 windows/386

聞きたいこと

vim-goでは:GoBuildというコマンドをサポートしています。
このコマンドはxxx.exeを出力せず、build可能かチェックを行っているようなのですが、
どのようなコマンドを発行すればxxx.exeが出力されないか気になったのでソースを
追ってみたところ、:GoBuildでは以下のコマンドを実施しているようでした。

vim

1:go build -tags . errors 2" let g:go_debug = ['shell-commands']したところ、↓がechoされたので、たぶん↑のコマンドが実行されているかと。。 3" vim-go: job command: ['go', 'build', '-tags', '', '.', 'errors'] 4

ためしにコマンドプロンプト上からgo build -tags . errorsを実施してみたところ、
確かにxxx.exeは作成されませんでした。
また、go build . errorsでもxxx.exeは生成されなかったので、-tagsは関係なさそうということは分かりました。

ここまでは調べられたのですが、go build . errorsでなぜxxx.exeが生成されないかが分かりません。
ちなみに最後がerrorsではなく、fmtとかでもxxx.exeが生成されなかったのですが、こちらも理由が分かりませんでした。

go buildのヘルプを見たのですが、英語が分からず理解できなかったです。。
たぶん以下がexeを生成しない部分を説明しているのだと。。

go build --help

When compiling multiple packages or a single non-main package,
build compiles the packages but discards the resulting object,
serving only as a check that the packages can be built.

すみませんが、教えていただきたいです。宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

go buildの実行結果が出力されていない理由としては、質問に挙げられている、

>go build --help When compiling multiple packages or a single non-main package, build compiles the packages but discards the resulting object, serving only as a check that the packages can be built.

に該当するかと思います。めちゃくちゃ意訳ですが、「複数のパッケージかmainでないパッケージをコンパイルしたときは、パッケージがビルドできるかどうかのみチェックして、結果は破棄する(実行ファイルは作成しない)」ということかと思います。

したがって、:GoBuildは、.(直下のパッケージ)とerrorsパッケージ指定して強制的に複数のパッケージとすることで、コンパイルできるかどうかのみのチェックが実現できているのだと思います。

投稿2018/11/19 14:24

編集2018/11/19 14:26
yukkeorg

総合スコア985

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rapan931

2018/11/20 00:00

理解できました。 回答していただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問