・Visual Studio を無料で使える人数を超えてしまう
・エンタープライズ企業に当てはまる
などの理由で、会社や派遣先のクライアントが Visual Studio Professional のライセンスを用意してくれない場合に Visual Studio Code を使うことになります。
C# はわりと良い子なのですが、C++ のセットアップはすこぶる面倒です。
ググっても英語サイトや古い情報、不十分な情報の断片ばかりヒットするので、Cygwin や Linux 環境でコンパイルした経験がない人にはハードルが高いと思います。
個人利用とか、特にこだわりがないなら Visual Studio を使った方が断然良いです。
Visual Studio Code で C++ の boost が使えるようになるまで、2時間くらい格闘したので、セットアップ手順を書きます。
インストールするのは microsoft.com のやつです。
これにはコンパイラとデバッガが含まれていません。
コンパイラとデバッガを別途用意することで、Visual Studio Code 上でのデバッグ(ブレークポイント設定、ステップ実行、変数の値表示など)が利用できるようになります。
MinGW は Windows 環境で C と C++ 用の各種コンパイラ(clang/c++/gcc/g++など)、デバッガ、各種コンパイラ用の boost などを使えるようにするアプリです。
まず、MinGW をインストールします。
ダウンロードリンク
https://github.com/msys2/msys2-installer/releases/download/2022-06-03/msys2-x86_64-20220603.exe
exe ファイルを実行してインストーラーを起動し、適当な場所にインストール。
私は C ドライブ直下にインストールしましたが、その場合、C:\msys64 というフォルダができます。
C:\msys64\mingw64.exe を実行すると、MinGW のターミナルが開きます。
ターミナルに以下のコマンドを入力
pacman -S base-devel mingw-w64-x86_64-toolchain
Proceed with installation? [Y/n] と聞かれたら y を入力してエンター
これでコンパイラとデバッガ(gdb)の両方が C:\msys64\mingw64\bin 直下にインストールされます。
boost をインストールするには以下のコマンドを MinGW のターミナルに入力
pacman -S mingw-w64-i686-boost mingw-w64-x86_64-boost
Proceed with installation? [Y/n] と聞かれたら y を入力してエンター
boost のヘッダファイルは C:\msys64\mingw64\include\boost 直下にインストールされます。
MinGW 側でやることはもうないので、ターミナルを閉じても問題ないです。
Windows 側で環境変数を設定します。
環境変数を編集したら、MinGW のターミナル、コマンドプロンプト、Visual Studio Code を開いている場合は閉じる。
PC再起動は不要ですが、古いウィンドウズを使っている場合は必要かも知れません。
適当な場所にフォルダを新規作成
コマンドプロンプト(Power Shell のターミナルでもOK)を開いて、↑のフォルダに移動
コマンドプロンプトに code . を入力して Visual Studio Code を開く
コードを入力
#include <iostream> #include <boost/shared_ptr.hpp> using namespace std; using int_ptr = boost::shared_ptr<int>; int main() { int_ptr hoge { new int(999) }; if (hoge) { cout << "hello world " << *hoge << endl; } return 0; }
インテリセンスがケチをつけてくるので黙らせる
赤い波線をクリックして、Quick Fix.. を選択
余計なお世話なので、この警告を無効にします。
インテリセンスに boost のインクルードパスを教えることはできるようですが、すごく面倒なので黙らせる方が手っ取り早いです。
Disable error squiggles を選択
インテリセンスは無視で構いませんが、コンパイラに boost のインクルードパスを伝えないとコンパイルが通りません。
そのための設定を行います。
メニューの Terminal にある Configure Tasks… を選択
select a task to configure と書かれたプルダウンリストが表示されるので、
C/C++ : g++.exe build active file
compiler: C:\msys64\mingw64\bin\g++.exe
を選択(今回は g++ を使うので)。
tasks.json が新規作成され、Visual Studio のエディタに表示されます。
“args” に並んでいる値は、g++ のコンパイルオプションです。
インクルードパスを追加するオプションは -Iインクルードパス なので、↓の画像のように記載します。
Ctrl + S で上書き保存。
main.cpp に戻って、適当な行にブレークポイントを設定し、Shift + Ctrl + B でビルドを行う。
ここまでの手順に間違いがなければ、ターミナルに Build finished successfully と表示される。
メニューの Run から Start Debugging を選択
select debugger と表示されたら、C++(GDB/LLDB) を選択
ステップ実行できたり、変数の値を確認できる
下ペインのタブを TERMINAL に切り替え、cout されたか確認。
正常に動作していれば、hello world 999 と表示されている。