LoginSignup
4
5

More than 3 years have passed since last update.

Visual Studio Code + WSL2でGo開発環境構築

Last updated at Posted at 2020-08-10

WindowsからTeraTerm等のターミナルソフトを使って、Linuxサーバにssh接続し、Linux上で開発をすることは、一般的に行っていると思う。しかし、Windows用のVS CodeのIntellisenseやdebug機能を使いたい!と思うこともよくある。そんなことが、WSL2を使うことで簡単にできちゃうので、紹介してみる。

インストール

Remote Development Extention

VS Codeの画面左側のExtensions(Ctrl + Shift + X)メニューで、Remote Developmentを検索し、インストール。とっても簡単。

image.png

WSL2 + Linux Distribution

ググればわかりやすいページがたくさんヒットするので、頑張りましょう。なお、私も書いてたりします。
Windows 10でLinuxを使う(WSL2)

Go tools

WSL2上のLinuxにGo Toolsをインストールする。Distributionで用意しているパッケージでもいいかもしれないが、私は何となく最新版をインストールした。Getting Started - The Go Programming Languageを見れば、簡単にインストールできる。
インストール後、$HOME/.profileに以下のPATH設定をお忘れなく。

GOPATH="$HOME/go"
PATH="$PATH:/usr/local/go/bin:$GOPATH/bin"

Go on Linux on WSL2

モジュール初期化

Linux上で、以下のコマンドを実行し、モジュールの初期化を行う。

mkdir hello
cd hello
go mod init hello

VS Code起動

上記で作成したhelloディレクトリで、以下のコマンドを実行。Windows上でVS Codeがhelloディレクトリをオープンした状態で起動する。

code .

VS Codeの画面左下にWSL: XXXXXと表示されていれば成功。

image.png

Go Extentionのインストール

VS Codeで、hello.goを作成すると、Go Extentionのインストールを勧められるので、Installをクリック。

image.png

インストール完了後、Reload Requiredをクリック。

image.png

この後、ソースコードの編集、実行時にUpdateInstallの問い合わせが何回かあるが、基本的に言われるがままに実行する。

Go build

ソースの編集後、Ctrl + F5で、コマンドパレットが開くのでGoを選択。

hello.go
package main

import (
    "fmt"
)

func main() {
    msg := "Hello, Wold!"
    fmt.Println(msg)
}

image.png

下記のように、DEBUG CONSOLEHello, World!と表示されればOK。

image.png

Ctrl + F5を実行するたびに、Goを選択するのは面倒なので、画面左のRun(Ctrl + Shift + D)メニューをクリックし、create a launch.json fileをクリックし、コマンドパレットからGoを選択。

image.png

launch.jsonファイルが開くが、編集は不要なので、そのまま閉じる。これで、Ctrl + F5実行時の問い合わせがなくなる。

Debug

F5キーによりデバッグもできる。ソースコードの行番号の左側をクリックすることでブレークポイントを設定。F5キーを実行すると、デバッグ開始しブレークポイントで処理が止まる。あとは、Continue(F5)Step Over(F10)Step Into(F11)等で遊びましょう。

image.png

リンク

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5