2021-04-10に更新

VSCode+WSL(ssh接続)+CMake+GoogleTestでC++プログラミング環境を構築

以前の記事
VSCode+WSL+CMake+GoogleTestでC++プログラミング環境を構築
で作った環境、なーーんかスマートじゃないなーと思ってたんですが
WSLにssh接続で入るようにしたらしっくりきたので、改めて記事を書きました。
①以外は以前の記事とほぼ同じですが、この記事だけ読んでできるようにしたかったので、ご了承ください。
あ、Windows10のVersionは1803以降でお願いします。それより前だと、WSLのウインドウを開いておいてsshデーモンも起動して・・・とか毎回やらないとssh接続できないらしいです。

①VSCode&WSLでC++を使えるようにする

①-1 WSLを使えるようにする

画面左下の窓アイコンを右クリック→Windows Powershell (管理者)を選択
出てきたウインドウに以下を打ち込んでしばし待ち、指示が出たらPC再起動

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
①-2 ubuntuをインストール

Microsoft Storeを開いてubuntuと入力し出てきたUbuntu 18.04 LTSをインストール&起動

①-3 ubuntu初期設定、gcc、opensshインストール

インストール完了したら、ユーザー名パスワードを適当に設定後、以下のコマンドで最新に更新

$ sudo apt update
$ sudo apt upgrade

次にGCCをインストール

sudo apt install build-essential

最後にopensshを入れなおす

sudo apt-get purge openssh-server
sudo apt-get install openssh-server

入れなおす事で、パスワード入力を不要にしたりとかRSA鍵を作ったりとか勝手にやってくれるっぽい

①-4 WindowsのVSCodeインストール

vscodeでググった一番上のリンクから「今すぐダウンロード」してインストールしてください

①-5 VSCodeに拡張機能をインストールしてWSLに接続

「Remote Development」で検索して出てきたやつをインストール
image
すると左側にモニタみたいなアイコンが出るのでクリック
image
表示されたubuntu18.04を選択して右のウインドウに+がついたようなアイコンをクリックで、
WSLに接続し、VSCodeのウインドウがもう一つ表示されます
簡単すぎて笑っちゃった

①-6 VSCode(WSL側)に拡張機能をインストール

①-5の最後で開いたWSL側のVSCodeに以下の拡張機能をインストール
・C/C++
・他日本語などお好みで

②cmakeのインストール

以降の操作はVSCode(WSL側)のターミナル(bash)で行います

sudo apt-get install cmake

おわり

③GoogleTestのインストール

cd
git clone https://github.com/google/googletest.git
cd googletest
mkdir build
cd build
cmake ..
sudo make install

ググると色んなインストール方法が出てくるが、自分が苦労なくできたのはこれだけだった
他はヒューマンのエラーが入る余地がありすぎる
特に最後のmake installはmakeだけやって手作業で.aとか.hをコピーしてる記事が多くてなんで?? ってなった

④C++のコード書く

さすがに省略

⑤GoogleTest使ってみたソースのCMakeLists.txt

cmake_minimum_required(VERSION 3.0)
project("hello_gtest")
add_executable(hello_gtest main.cpp)
target_link_libraries(hello_gtest
  PRIVATE
    gtest
    gmock
    pthread)

①②③あたりを上に書いた通りにやっておけば、includepathの指定とか特に何も書かないで
上の内容でビルド&実行できると思う
お疲れさまでした。次の⑥は読まなくていいです

⑥■■■■■■■■■■

前作った環境、正直なんか使いにくくてその後二度とC++打たなかったんですが、
バチが当たってHDDのアームが荒ぶってぶっ壊れたので、
今回環境を作り直すにあたって、もっと楽にできるようにしてみました。

ツイッターでシェア
みんなに共有、忘れないようにメモ

uskz

自分のために書いていきます

Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。

また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!

有料記事を販売できるようになりました!

こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?

コメント