1. ホーム
  2. c++

[解決済み] Visual Studio Code、#include <stdio.h>で「設定にインクルードパスを追加してください」と言われる。

2023-03-03 14:28:37

質問

Visual Studio Code で C/C++ をビルドしようとしています。C/C++ と関連するすべての拡張機能をインストールしました。

#include <stdio.h>
int main() {
    printf("Test C now\n");
    return 0;
}

の下に緑色の線がありますが #include <stdio.h> の下に緑色の線があり、"Add include path to settings"と表示されています。それをクリックすると、"c_cpp_properties.json"に移動してしまいます。

下記の設定のどこにどのようにインクルードパスを追加すればいいのでしょうか?

"configurations": [
    {
        "name": "Mac",
        "includePath": ["/usr/include"]
    }
]

どのように解決するのですか?

より現在の状況を説明します。2018年の間に、C++の拡張機能によって、設定に別のオプションが追加されました。 compilerPath c_cpp_properties.json ファイルを作成します。

compilerPath (オプション) プロジェクトのビルドに使用するコンパイラの絶対パス。この拡張機能は、インテリセンスに使用するシステムインクルードパスとデフォルトの定義を決定するためにコンパイラに問い合わせを行います。

使用する場合は includePath を使用した場合、インテリセンスがコンパイラを使用してシステムインクルードパスを把握するため、必要ありません。


元々です。

下記の設定において、インクルードパスをどこにどのように追加すればよいのでしょうか?

リストは文字列配列なので、インクルードパスを追加する場合は以下のようになります。

"configurations": [
    {
        "name": "Mac",
        "includePath": ["/usr/local/include",
            "/path/to/additional/includes",
            "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include"
        ]
    }
]

出典 cpptoolsブログ 2016年3月31日 .

リンク先のソースには、Win32の設定のフォーマットを示すgifがありますが、他も同様です。

上記のサンプルは、Xcode がインストールされている場合、SDK (OSX 10.11) のパスを含む .

ノート インクルードパスが変更されると、更新にしばらく時間がかかることがあります。

cpptools 拡張は はここにあります。 .

VSCode の C++ 言語サポートに関する (Microsoft からの) 詳細なドキュメントは、以下のとおりです。 はこちらです。 .


保存のために (議論から)、以下は C++ ファイルまたは C ファイルのいずれかをコンパイルして実行するための tasks.json ファイルの内容に関する基本的なスニペットです。これらは、ファイル名にスペースを使用できます (json内の追加の引用符を、次のようにエスケープする必要があります)。 \" ). シェルは をランナーとして として使用され、これによりコンパイル ( clang... ) と実行 ( && ./a.out )の実行を想定しています。また、tasks.jsonはローカルのワークスペース(.vscodeディレクトリの下)にあると仮定しています。サポートされている変数など、task.jsonの詳細は、以下のとおりです。 で見ることができます。 .

C++の場合。

{ 
    "version": "0.1.0", 
    "isShellCommand": true, 
    "taskName": "GenericBuild", 
    "showOutput": "always", 
    "command": "sh", 
    "suppressTaskName": false, 
    "args": ["-c", "clang++ -std=c++14 -Wall -Wextra -pedantic -pthread \"${file}\" && ./a.out"]
}

Cの場合。

{ 
    "version": "0.1.0", 
    "isShellCommand": true, 
    "taskName": "GenericBuild", 
    "showOutput": "always", 
    "command": "sh", 
    "suppressTaskName": false, 
    "args": ["-c", "clang -std=c11 -Wall -Wextra -pedantic -pthread \"${file}\" && ./a.out"] // command arguments... 
}