よく忘れるので自分用メモ。CMake大好きマン向け。
インストール
必要なパッケージインストール
sudo apt install gcc g++ make cmake
VSCodeインストール
上記からダウンロードしてdpkg
等でインストールします。
sudo dpkg -i code_1.79.2-1686734195_amd64.deb
拡張機能インストール
画像の拡張機能をインストールします。
必須はC/C++、CMake、CMakeToolsのみ。以下は便利ツールです。
Todo Tree
ソースコードでコメントの先頭にTODO
と書くと、コメントがハイライトされるようになります。また、アクティビティバー(左のファイル一覧とかデバッグとかから選択するやつ)のToDoリストが追加され相互参照できるようになります。あとでやらなきゃな~ということはとりあえず備忘録的にTODO
コメント書いておくと便利。ちなみにC++以外も使えます。
VS Code Counter
プログラムのソースコードのライン数をカウントできます。こちらもC++以外も使えます。
Material Icon Theme
ただの好み。
ワークスペースを開く
直下にトップレベルのCMakeLists.txt
が存在するようにワークスペースを開きます。
workspace/
├── CMakeLists.txt
├── include/
└── src/
CMakeLists.txtを書く
プログラムを書く前にCMakeLists.txtを書いておきます。IDEはデフォルトの状態ではBoostなど/usr/include
などにない外部ライブラリのインクルードパスを認識しません。
この状態だと、IDEの予測機能などが使えないので不便ですが、CMakeLists.txt
のtarget_include_directories
にパスを記載しておくと上記のエラーが解消され、各種Lint機能が働くようになります。
target_include_directories(
${PROJECT_NAME} PRIVATE
/home/vboxuser/develop/library/boost/include
./include
)
逆にエラーが出るということはCMakeLists.txt
の設定がどこかおかしく、どうせビルドに失敗するのでその前に直しておきます。c_cpp_properties.json
にインクルードパスを設定することでもIDEのLint機能は使えるようになりますが、代わりにCMakeLists.txt
の誤りに気づけなくなるので、自分はこちらは作成していません。
プログラム実行時の引数と環境変数を設定する
ctrl+shift+pからコマンドパレットを開き、C++
などと入力して「IntelliSense 構成を選択」→「g++を使用する」を選びます。
すると、ワークスペース内の.vscode
ディレクトリにsettings.json
が生成されます。
実行時の引数はcmake.debugConfig
、環境変数はcmake.environment
に設定します。find_packageを使う場合は、cmake.configureArgs
でパッケージ名Config.cmake
のディレクトリを指定するといいです。
{
・・・(略)・・・
"cmake.debugConfig": {
"args": [
"argv1",
"argv2"
],
},
"cmake.environment": {
"TEST": "HOGEHOGE"
},
"cmake.configureArgs": [
"-DBoost_DIR=/Path/to/Boost/cmake/dir",
],
}
ビルドする
ステータスバー(一番下のバー)からBuildを押すと、build
ディレクトリが作成され、ビルドが走ります。CMakeLists.txt
を入れ子にしていたら、子要素も含めてビルドされます。
デバッグする
ブレークポイントを置くなどしてから、ビルド時と同じステータスバー(一番下のバー)から虫マークをクリックすることでデバッグが開始されます。
実行する
デバッグの隣の右向き三角形を押すと、実行されます。