私はVisual Studio Codeを使用する完全な初心者であり、自分が何をしているのかわかりません。私は周りを検索しました(おそらく十分ではありません)が、行の横にある黄色の電球をクリックするたびにリダイレクトされるc_cpp_properties.json
ファイルを構成する方法について、私のような人のための簡単な説明を見つけることができません緑色の波線で下線が引かれています。
IntelliSenseを適切に動作させるために.json
に何を入れるかを知りたい
From: https://code.visualstudio.com/docs/languages/cpp
以下では、MinGW C++インクルードパスがWindowsのbrowse.pathに追加されていることがわかります。
{
"name": "Win32",
"includePath": [
"${workspaceRoot}"
],
"defines": [
"_DEBUG",
"UNICODE"
],
"intelliSenseMode": "msvc-x64",
"browse": {
"path": [
"${workspaceRoot}",
"C:\\MinGW\\lib\\gcc\\mingw32\\6.3.0\\include\\c++"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
お役に立てば幸いです! :)
C/C++拡張機能の公式ドキュメントから:
VS Codeでフォルダーを開くときに次のメッセージが表示される場合は、C++ IntelliSenseエンジンがインクルードファイルのあるパスに関する追加情報を必要としていることを意味します。
インクルードパスは、開かれたフォルダーの.vscodeディレクトリにあるc_cpp_properties.jsonというファイルの"includePath"
設定で定義されます。
このファイルを作成または開くには、コマンドパレットで"C/Cpp: Edit Configurations"
コマンドを使用するか、電球メニューで"Edit "includePath" setting"
を選択します(下のスクリーンショットを参照)。電球を見つける最も簡単な方法は、ソースファイルの一番上までスクロールし、#includeステートメントの下に表示される緑色の波線をクリックすることです。
フォルダーが開かれると、拡張機能はオペレーティングシステムに基づいてシステムヘッダーを見つけようとしますが、プロジェクトが依存する他のライブラリについては認識しません。緑の波線の上にマウスを移動するか、[問題]ウィンドウを開いて、IntelliSenseエンジンが開くことができないヘッダーを確認できます-場合によっては、見つけることができない依存ヘッダーがあります。
以下に説明する手法のいずれかを使用して、残りのパスを指定できます。
この拡張機能は、compake_commands.jsonファイルから"includePath"
および"defines"
の情報を取得できます。これらのファイルは、CMakeやNinjaなどの多くのビルドシステムで自動生成できます。現在の構成が定義されているセクションを探し(デフォルトでは、OSごとに1つの構成(「Win32」や「Mac」など))、c_cpp_properties.jsonの"compileCommands"
プロパティを設定しますcompile_commands.jsonファイルへのフルパスと拡張機能は、IntelliSenseの"includes"
および"defines"
プロパティの代わりにそれを使用します。
最初に試すことは、電球パスの提案を活用して、インクルードパスを自動解決することです。フォルダーを開くと、拡張機能はrecursivelyc_cpp_propertiesの"browse.path"
設定で設定されたパスに基づいて、コードが使用しているヘッダーファイルに一致する潜在的なインクルードパスを検索します。 .json。 #include文の下にある緑色の波線をクリックすると、IntelliSenseがインクルードファイルを解決できるようにするパスの提案を提供する電球が表示されます。
電球にパスの候補が表示されない場合は、ヘッダーが存在する可能性があるルートフォルダーをc_cpp_properties.jsonの"browse.path"
設定に追加してみてください。これにより、拡張機能は再帰的にこれらのフォルダー内を検索し、検索プロセスが進むにつれて電球にさらに候補を表示できます。
上記のいずれでもパスが完全に解決されない場合、プロジェクトが依存するヘッダーへのパスをc_cpp_properties.jsonファイルで手動で指定できます。現在の構成が定義されているセクションを探し(デフォルトではOSごとに1つの構成(「Win32またはMac」など)があります)。"includePath"
設定にパスを追加し、"defines"
で定義しますたとえば、次のスクリーンショットは、Mac構成のパスを指定するファイルのスニペットを示しています。
また、MinGWの場合、 拡張機能のドキュメントで説明されているように 独自のインクルードファイルをリストするようにgcc/g ++に依頼できます。
gcc -v -E -x c++ nul
インクルードパスが正しく解決されたことを確認するには、2つの方法があります。
これは、IntelliSenseエンジンがインクルードパスを解決したことを示しているため、現在の翻訳単位のCまたはC++コードの完全なIntelliSenseを楽しむことができます。追加のインクルードパスを設定する必要がある別の翻訳単位に属している場合、他のファイルでエラーが表示される場合があります。