質問: ['shell-commands']したところ、↓がechoされたので、たぶん↑のコマンドが実行されているかと。。 " vim-go: job command: ['go', 'build', '-tags', '', '.', 'errors'] ``` ためしにコマンドプロンプト上から`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. > > > すみませんが、教えていただきたいです。宜しくお願いします。
回答: `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`パッケージ指定して強制的に複数のパッケージとすることで、コンパイルできるかどうかのみのチェックが実現できているのだと思います。