snap版CMakeをVSCodeから使う

By | 2020年11月21日

Visual Studio CodeのCMake Tool拡張には、snap版のCMakeを使えない問題があります。これに引っかかって随分苦労した後、解決したので以下にその解決方法を書いておきます。

問題

最近作業用のUbuntuをバージョン16.04から20.04にアップデートしました。

さらに同時期に作り始めたプログラムを試しにVSCodeで管理することにしました。これまでは組み込みプログラムばかりでしたのでEclipseで管理していましたし、たまに書くshell scriptはコマンドラインのgitでリポジトリと同期していました。VSCodeはこれまでエディタとしてしか使っていなかったわけです。

cmakeもほとんど経験がないのですが、とりあえずコマンドラインでビルドできるようになりました。で、試しにVSCodeでcmakeを使ったところいきなりエラーです。

エラーメッセージ
  • Ubuntu 20.04
  • VSCode 1.51.1
  • CMake Tools 1.5.1
  • CMake 3.19.0

上のスクリーンショットは切れていますが、/snap/bin/cmake が見つからないと言っています。いや、あるんですよ。だって、コマンドラインからビルドできるんですから。

コミュニティの反応

当初、Ubuntuが悪いのかVSCodeが悪いのかわからずに検索にも苦労しましたが、最後には「snap版のcmakeを使った時にcmake toolsが異常動作するので対応してほしい」というイシューにたどり着きました。

問題はまだ解決していません。ここのイシューを読んだ感じでは、snapのリンクの貼り方が特殊なため、VSCodeから扱えないのではないかと思われます。実際、調べてみると/snap/bin/cmakeはリンクであり、そのリンク先は/usr/bin/snapとなっています。んんん?

snapが変な管理の仕方をするから悪いのか、Cmake Toolsのサブプロセス呼び出し方法が悪いのかは、私にはわかりません。

snap管理下のcmakeのリンク先

対応策

先のイシューの情報をもとに、CMake Toolsを設定したところ、問題なく動作するようになりました。拡張の中からCMake Toolsを選び、設定画面を開きます。検索バーから “path”を入力すると、CMake Pathの入力フィールドが現れます。ここに /snap/cmake/current/bin/cmake と入力すれば設定は終わりです。

Cmakeへのパスを入力する

VSCodeからビルドできるようになります。

ビルド成功

まとめ

イシューのステータスを見るに、まだしばらくこの問題は残りそうです。

我が世の春を謳歌している感のあるVSCodeですが、どうも基盤になっているjavascriptやnodejsといった技術が透けて見えることが多いです。わからないことを検索しても、はてVSCodeの話を読んでいるのnodejsの話を読んでいるのかわからない、ということも多いです。

使いこなすのは難しそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください