Visual Studio CodeでC/C++を構築しようとしています。 C/C++および関連するすべての拡張機能をインストールしました。
#include <stdio.h>
int main() {
printf("Test C now\n");
return 0;
}
ただし、#include <stdio.h>
の下に「設定へのインクルードパスの追加」という緑色の線があります。クリックすると、「c_cpp_properties.json」に移動します。
以下の構成でインクルードパスを追加する方法と場所
"configurations": [
{
"name": "Mac",
"includePath": ["/usr/include"]
}
]
以下の構成でインクルードパスを追加する方法と場所を教えてください。
リストは文字列配列であるため、インクルードパスを追加すると次のようになります。
"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から)は、 こちらにあります です。
2018年に、C++拡張機能により、c_cpp_properties.json
ファイルの構成 compilerPath
に別のオプションが追加されました。
compilerPath
(オプション)プロジェクトのビルドに使用するコンパイラーへの絶対パス。拡張機能は、IntelliSenseに使用するシステムインクルードパスとデフォルト定義を決定するためにコンパイラーに照会します。
IntelliSenseはコンパイラを使用してシステムインクルードパスを特定するため、使用する場合、includePath
は必要ありません。
保存のため(議論から)、以下は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...
}
Macユーザーの場合、Xcodeではなくコマンドラインツールのみをインストールした場合は、/Library/Developer/CommandLineTools/
ディレクトリを確認します。例:
"configurations": [{
"name": "Mac",
"includePath": [
"/Library/Developer/CommandLineTools/usr/lib/clang/8.1.0/include/",
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/4.2.1/tr1/",
"/usr/include/c++/4.2.1",
"/usr/local/include",
"/usr/include"
]
}]
異なるバージョンのコマンドラインツールがインストールされている場合は、おそらくパスを調整する必要があります。
注 :コマンドパレット(-P)の
c_cpp_properties.json
コマンドを使用してC/Cpp: Edit Configurations
ファイルを開いたり生成したりすることもできます。
ユーザー設定で以下を追加します。
"C_Cpp.default.includePath":["path1","path2"]
プロジェクトの標準ヘッダーを構成する最良の方法は、compilerPath
プロパティをc_cpp_properties.json
ファイルの構成に設定することです。システムインクルードパスをincludePath
プロパティに追加することは推奨されません。
c_cpp_properties.json
を使用しない場合の別のオプションは、C_Cpp.default.compilerPath
設定を設定することです。
この回答は多分遅れましたが、たまたま問題を修正しました。これが私のc_cpp_properties.jsonファイルです。
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/c++/5.4.0/",
"usr/local/include/",
"usr/include/"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++14",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
}