Windows用のLinuxサブシステムを使用して、Windows 10ビルド17134のVSコードのエディターで「インクルード」を機能させるのに問題があります。 C/C++拡張機能をインストールし、ドキュメント here に記載されているlaunch.json情報を使用してアプリケーションを実行できます。
ドキュメント here で、Microsoftはc_cpp_properties.jsonを設定してこの問題を回避する方法の概要を説明していますが、あまり進んでいません。現在、「includes」行の下に次のようなエラーが表示されています。
#include errors detected. Please update your includePath. IntelliSense features for this translation unit (C:\Users\Username\Source\c-lang\hello.c) will be provided by the Tag Parser. cannot open source file "stdio.h"
私のc_cpp_properties.json:
{
"configurations": [
{
"name": "WSL",
"intelliSenseMode": "clang-x64",
"compilerPath": "/usr/bin/gcc",
"includePath": [
"${workspaceFolder}",
"/usr/include/"
],
"defines": [],
"browse": {
"path": [
"${workspaceFolder}",
"/usr/include"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "",
},
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}
Githubの問題に関する this コメントのおかげでそれを理解しました。
私は彼らが推奨するコマンドを取り、C++ではなくCを使用するように編集し、WSLで実行しました。
gcc -v -E -x c -
特に、すべてのgccがCライブラリを探している場所をリストしました。そのリストをコピーして、個々のパスを「includePath」配列と「path」配列に入れました。これが私の更新されたc_cpp_properties.jsonファイルです。
{
"configurations": [
{
"name": "WSL",
"intelliSenseMode": "clang-x64",
"compilerPath": "/usr/bin/gcc",
"includePath": [
"${workspaceFolder}",
"/usr/include/x86_64-linux-gnu/5/include",
"/usr/local/include",
"/usr/include/x86_64-linux-gnu/5/include-fixed",
"/usr/include/x86_64-linux-gnu",
"/usr/include"
],
"defines": [],
"browse": {
"path": [
"${workspaceFolder}",
"/usr/include/x86_64-linux-gnu/5/include",
"/usr/local/include",
"/usr/include/x86_64-linux-gnu/5/include-fixed",
"/usr/include/x86_64-linux-gnu",
"/usr/include"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
},
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}
これが誰かを助けることを願っています。