概要
ある日、vscodeを立ち上げてcppファイルを開いてみると↓のような状態になっていました。
なんかめっちゃ怒られてるんだが…( ;∀;)
これを元通りに直すのに結構時間がかかってしまったので、もし誰かが僕と同じ原因でこのような状態になってしまったときの助けになればと思い、記事を書くことにしました。
自分はそこまでPCに強いわけではないので、扱いになれている方から見ると「何やってんだこいつ」と思われるかもしれませんが、ご容赦ください<(_ _)>
最初に試したこと
特に設定をいじった記憶もないのですが、こういう場合はインクルードパス(コンパイラが、コード中の #include で指定しているファイルを探すパス)に問題があることが多いと聞いたことがあったのでとりあえず見てみました。
今までこれで動いていたわけですし、特におかしなスクリプトが追記されている様子も見受けられません。
エラーログには「not found」、つまり「見つからないよ~」と書かれていたので、今までこのパスの位置にあったファイルがどこかへ移動してしまったということでしょうか?
ネットを漁ると、「includePath」の部分に「"/usr/include"」や「"/usr/local/include"」を追記している方が何人かおられたので、そちらを真似してみますが特に変化なし。
何もわからないので次の手段に移ります。
2番目に試したこと
すばり、シャットダウン!!!!
困ったらこれですよね~。今まで動いていたものが急に動かなくなったんだから、PCの不具合は疑いたくなってしまうものです。正直望み薄な気はしていましたが、やっておくべきことではあるのでシャットダウンします。
………はい、直りませんでした。というわけで次の手段です。
3番目に試したこと
「.vscode」フォルダーの消去です。まるっきし消去してしまって1から書き直せば何か変わるかも…と思って行いました。
正直これでだめだったら、アプリも消して開発環境を再構築するつもりでしたが、幸いにもファイルを作成している最中に問題点が見つかります。それは「c_cpp_properties.json」ファイルを作成しようとしたときのことです。
「shift」+「ctrl」+「p」から「構成の編集」を選択したところ、「c_cpp_properties.json」ファイルは生成されず、↓のようなポップが画面の右下に現れました。
( ゚д゚)なんですと……?そんな設定した覚えないよ……?
なにがなんだかよくわからないまま、ユーザー設定から「intelliSenseEngine」と検索してみます。
なるほど、確かに「Disabled」になっていますね。説明文にもありますが、この状態だと言語サービスの機能がオフになってしまうようです。早速「Default」に設定し直そうと試みますが……
なにやら警告が出てきて、「Default」に戻すことができません(正確には戻してもすぐ「Disabled」に切り替わってしまいました)。めげずに警告のメッセージを読んでみると「clangd」という別の拡張機能が有効になっているせいで、ここが強制的に「Disabled」になってしまうようです。
当該の拡張機能を無効化し、「Default」に設定、vscodeを再起動すると…「c_cpp_properties.json」ファイルが生成できました!!!
あとは元通りに設定し直すと、
やったーーー!!!!直った!!!!!!
必要な手順まとめ
今回の場合、「clangd」という拡張機能が有効になってたことにより、言語サービスの機能がオフになってしまったことが原因となり、最初のようなエラーログが出ていました。
これを直すには、
1.「clangd」の無効化
2.言語サービスの機能を有効化
3.vscodeの再起動
という流れでできます。
何か気になることがあれば、コメントの方で教えていただければ対応するので、よろしくお願いします。
余談
さて、今回問題になった「clangd」という拡張機能ですが、実は自分でインストールした記憶がありません…w
vscodeって(これは僕の設定の問題かもしれませんが)おすすめの拡張機能みたいなのをポップ出して教えてくれますよね。
あれ邪魔なんで出てくるたびに消してたんですが、おそらくその作業の中で間違えてインストールのところをクリックしてしまったのだと思います。
エラーログ見たときはだいぶ焦りましたが、いい勉強になりましたw
この記事が、同じように困っている方々の助けになれば嬉しいです。最後まで読んでいただきありがとうございました<(_ _)>