tag:crieit.net,2005:https://crieit.net/tags/CMake/feed
「CMake」の記事 - Crieit
Crieitでタグ「CMake」に投稿された最近の記事
2021-05-25T12:56:00+09:00
https://crieit.net/tags/CMake/feed
tag:crieit.net,2005:PublicArticle/16828
2021-04-10T00:26:58+09:00
2021-05-25T12:56:00+09:00
https://crieit.net/posts/VSCode-WSL-ssh-CMake-GoogleTest-C
VSCode+WSL(ssh接続)+CMake+GoogleTestでC++プログラミング環境を構築
<p>以前の記事<br />
<a href="https://crieit.net/posts/VSCode-WSL-CMake-GoogleTest-C">VSCode+WSL+CMake+GoogleTestでC++プログラミング環境を構築</a><br />
で作った環境、なーーんかスマートじゃないなーと思ってたんですが<br />
WSLにssh接続で入るようにしたらしっくりきたので、改めて記事を書きました。<br />
①以外は以前の記事とほぼ同じですが、この記事だけ読んでできるようにしたかったので、ご了承ください。<br />
Windows10のVersionは1803以降でお願いします。それより前だと、WSLのウインドウを開いておいてsshデーモンも起動して・・・とか毎回やらないとssh接続できないらしいです。</p>
<h4 id="①VSCode&WSLでC/C++を使えるようにする"><a href="#%E2%91%A0VSCode%EF%BC%86WSL%E3%81%A7C%2FC%2B%2B%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B">①VSCode&WSLでC/C++を使えるようにする</a></h4>
<h6 id="①-1 WSLを使えるようにする"><a href="#%E2%91%A0-1+WSL%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B">①-1 WSLを使えるようにする</a></h6>
<p>画面左下の窓アイコンを右クリック→Windows Powershell (管理者)を選択。<br />
出てきたウインドウに以下を打ち込んでしばし待ち、指示が出たらPC再起動します。</p>
<pre><code>Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
</code></pre>
<h6 id="①-2 ubuntuをインストール"><a href="#%E2%91%A0-2+ubuntu%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">①-2 ubuntuをインストール</a></h6>
<p>Microsoft Storeを開いてubuntuと入力し出てきたUbuntu 18.04 LTSをインストール&起動します。</p>
<h6 id="①-3 ubuntu初期設定、gcc、opensshインストール"><a href="#%E2%91%A0-3+ubuntu%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A%E3%80%81gcc%E3%80%81openssh%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">①-3 ubuntu初期設定、gcc、opensshインストール</a></h6>
<p>インストール完了したら、ユーザー名パスワードを設定後、以下のコマンドで最新に更新、</p>
<pre><code class="sh">$ sudo apt update
$ sudo apt upgrade
</code></pre>
<p>次にgccなどをインストール、</p>
<pre><code class="sh">sudo apt install build-essential
</code></pre>
<p>最後にopensshを入れなおします。</p>
<pre><code class="sh">sudo apt-get purge openssh-server
sudo apt-get install openssh-server
</code></pre>
<p>入れなおす事で、パスワード入力を不要にしたりとかRSA鍵を作ったりとか勝手にやってくれるっぽいです。</p>
<h6 id="①-4 WindowsのVSCodeインストール"><a href="#%E2%91%A0-4+Windows%E3%81%AEVSCode%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">①-4 WindowsのVSCodeインストール</a></h6>
<p>vscodeでググった一番上のリンクから「今すぐダウンロード」してインストールしてください。</p>
<h6 id="①-5 VSCodeに拡張機能をインストールしてWSLに接続"><a href="#%E2%91%A0-5+VSCode%E3%81%AB%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6WSL%E3%81%AB%E6%8E%A5%E7%B6%9A">①-5 VSCodeに拡張機能をインストールしてWSLに接続</a></h6>
<p>「Remote Development」で検索して出てきたやつをインストール<br />
<a href="https://crieit.now.sh/upload_images/0d06249ecfc2f7e22566f5488ed5242c60706e1070007.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0d06249ecfc2f7e22566f5488ed5242c60706e1070007.png?mw=700" alt="image" /></a><br />
すると左側にモニタみたいなアイコンが出るのでクリック<br />
<a href="https://crieit.now.sh/upload_images/efcc14bf54749592002ebc1ca3780ae860706e33c17fd.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/efcc14bf54749592002ebc1ca3780ae860706e33c17fd.png?mw=700" alt="image" /></a><br />
表示されたubuntu18.04を選択して右のウインドウに+がついたようなアイコンをクリックでWSLに接続し、VSCode(WSL側)のウインドウがもう一つ表示されます。以降はVSCode起動後この2ポチでWSL環境が開きます。前より簡単ですね。</p>
<h6 id="①-6 VSCode(WSL側)に拡張機能をインストール"><a href="#%E2%91%A0-6+VSCode%28WSL%E5%81%B4%29%E3%81%AB%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">①-6 VSCode(WSL側)に拡張機能をインストール</a></h6>
<p>①-5の最後で開いたWSL側のVSCodeに以下の拡張機能をインストール<br />
・C/C++<br />
・他日本語などお好みで<br />
ここまでやればC/C++のコーディングとビルドはできるようになります。</p>
<h4 id="②cmakeのインストール"><a href="#%E2%91%A1cmake%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">②cmakeのインストール</a></h4>
<p>以降の操作は①-3で使ってたウインドウでもできますが、VSCode(WSL側)のターミナル(bash)でも行えます。コピペとかしやすいので後者をおすすめします。</p>
<pre><code class="sh">sudo apt-get install cmake
</code></pre>
<p>おわり</p>
<h4 id="③GoogleTestのインストール"><a href="#%E2%91%A2GoogleTest%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">③GoogleTestのインストール</a></h4>
<p>インストール方法をググると、tar.gzダウンロードしてきてせこせこ解凍したり、makeしたあと生成物をなぜか手動でコピーしてたりと色んなインストール方法が出てきますが、苦労なくできるのは以下です。</p>
<pre><code class="sh">cd
git clone https://github.com/google/googletest.git
cd googletest
mkdir build
cd build
cmake ..
sudo make
sudo make install
</code></pre>
<h4 id="④C++のコード書く"><a href="#%E2%91%A3C%2B%2B%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B8%E3%81%8F">④C++のコード書く</a></h4>
<p>書いてください。</p>
<h4 id="⑤GoogleTest使ってみたソースのCMakeLists.txt"><a href="#%E2%91%A4GoogleTest%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AECMakeLists.txt">⑤GoogleTest使ってみたソースのCMakeLists.txt</a></h4>
<pre><code class="sh">cmake_minimum_required(VERSION 3.0)
project("hello_gtest")
add_executable(hello_gtest main.cpp)
target_link_libraries(hello_gtest
PRIVATE
gtest
gmock
pthread)
</code></pre>
<p>①②③あたりを上に書いた通りにやっておけば、includepathの指定とか特に何も書かないでも、上のような内容でビルド&実行できると思います。<br />
お疲れさまでした。次の⑥は読まなくていいです。</p>
<h4 id="⑥■■■■■■■■■■"><a href="#%E2%91%A5%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0">⑥■■■■■■■■■■</a></h4>
<p>前の記事で作った環境、正直なんか使いにくくてその後二度と自宅でC/C++打たなかったんですが、バチが当たってHDDがぶっ壊れたので、SSDに換装後、今回環境を作り直すにあたって、もっと楽にできるようにしてみました。</p>
uskz
tag:crieit.net,2005:PublicArticle/16240
2020-11-26T18:56:31+09:00
2021-05-25T12:15:30+09:00
https://crieit.net/posts/VSCode-WSL-CMake-GoogleTest-C
VSCode+WSL+CMake+GoogleTestでC++プログラミング環境を構築
<p><strong>2021/4/9追記</strong><br />
WSLにssh接続で入った方が色々変な事気にしないでいいんじゃない?<br />
ということで、アップデートした記事を書きました。<br />
こちらになります。<br />
<a href="https://crieit.net/posts/VSCode-WSL-ssh-CMake-GoogleTest-C">VSCode+WSL(ssh接続)+CMake+GoogleTestでC++プログラミング環境を構築</a></p>
<p>以下はアップデート前の記事です。</p>
<hr />
<p>Windows10で掲題の環境を作成したのでメモ<br />
サクッとやりたかった<br />
次の機会にはサクッとできるはず</p>
<h4 id="①まずは↓を見ながらVSCode&WSLでC/C++を使えるようにする"><a href="#%E2%91%A0%E3%81%BE%E3%81%9A%E3%81%AF%E2%86%93%E3%82%92%E8%A6%8B%E3%81%AA%E3%81%8C%E3%82%89VSCode%EF%BC%86WSL%E3%81%A7C%2FC%2B%2B%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B">①まずは↓を見ながらVSCode&WSLでC/C++を使えるようにする</a></h4>
<p><a target="_blank" rel="nofollow noopener" href="https://ynucpc.github.io/blog/2020/03/24/howtowsl-vscode/">WSL+VSCODEで競技プログラミング環境構築</a></p>
<p>途中、</p>
<blockquote>
<p>拡張機能がインストールできたら上部のメニューから「ファイル」->「フォルダーを開く」<br />
から<strong>好きなフォルダー</strong>を開いてください。</p>
</blockquote>
<p>と書かれているが、自分は好きなフォルダーじゃなくて、<br />
<strong>WSLのrootfsディレクトリ以下</strong>を指定した<br />
具体的にはUbuntu18.04なら以下</p>
<pre><code class="sh">C:\Users\[ユーザー名]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
</code></pre>
<p>本当にマイドキュメントとか好きなフォルダにしたら、<br />
gtest.hをincludeするときとかの補完機能がなんかアレとか、CMakelists.txtを書く時に全然アレとか、<br />
とにかく無用な苦労をしたので・・・(だから「競技プログラミング」って書いてあったのかな)</p>
<h4 id="②cmakeのインストール"><a href="#%E2%91%A1cmake%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">②cmakeのインストール</a></h4>
<pre><code class="text">sudo apt-get install cmake
</code></pre>
<p>おわり</p>
<h4 id="③GoogleTestのインストール"><a href="#%E2%91%A2GoogleTest%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">③GoogleTestのインストール</a></h4>
<pre><code class="sh">cd
git clone https://github.com/google/googletest.git
cd googletest
mkdir build
cd build
cmake ..
sudo make install
</code></pre>
<p>ググると色んなインストール方法が出てくるが、自分が苦労なくできたのはこれだけだった<br />
他はヒューマンのエラーが入る余地がありすぎる<br />
特に最後のmake installはmakeだけやって手作業で.aとか.hをコピーしてる記事が多くてなんで?? ってなった</p>
<h4 id="④C++のコード書く"><a href="#%E2%91%A3C%2B%2B%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B8%E3%81%8F">④C++のコード書く</a></h4>
<p>さすがに省略</p>
<h4 id="⑤GoogleTest使ってみたソースのCMakeLists.txt"><a href="#%E2%91%A4GoogleTest%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AECMakeLists.txt">⑤GoogleTest使ってみたソースのCMakeLists.txt</a></h4>
<pre><code class="sh">cmake_minimum_required(VERSION 3.0)
project("hello_gtest")
add_executable(hello_gtest main.cpp)
target_link_libraries(hello_gtest
PRIVATE
gtest
gmock
pthread)
</code></pre>
<p>①②③あたりを上に書いた通りにやっておけば、includepathの指定とか特に何も書かないで<br />
上の内容でビルド&実行できると思う<br />
お疲れさまでした。次の⑥は読まなくていいです</p>
<h4 id="⑥■■■■■■■■■■"><a href="#%E2%91%A5%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0">⑥■■■■■■■■■■</a></h4>
<p>仕事でどうしてもわかんないとこがあったが職場にいられる時間があまりなく、<br />
しかたない、家でC++環境構築してやってみるか・・男の子なら自宅WindowsPCで<br />
CやC++のコンパイル環境があるべきだよな・・・<br />
と思ってとりかかったら、上記の環境設定だけで終わってしまった</p>
<p>何も考えず仮想PCにlinux入れてssh接続でやる方法ならむしろ確実だったが<br />
「めんどい&重い&時間かかる」<br />
というのはわかっていたので、他に軽い方法ないかとググったらMinGWを使う方法がいっぱいでてきた<br />
このMinGWが無駄にした時間のほぼ全て<br />
最初のapt-getに相当する部分でpacmanとか打ち込まされる時点で嫌な予感がして、<br />
騙されたかなと思ってそれでもやってみたら騙された<br />
MinGWってなんで今も存在してるんだろう・・・</p>
<p>WSLはすごい楽でした<br />
ありがとうMicroSoft</p>
uskz