私はCを学んでいて、通常のコーディングにUbuntuでVSコードを使用しています。他の多くのタスクを実行するWindowsに学習資料を移行しようとしているため、WSL 2とそのディストリビューションであるUbuntu 18.04 LTSをインストールしました。 WSLで使用するWindows用VS Codeとそのリモート拡張機能をインストールした後、VS Codeで新しいWSLセッションを開始し、IntelliSenseを使用してC / C ++拡張機能をインストールし、次のように簡単なプログラムを作成しました。
#include <signal.h>
int main()
{
kill(-1, SIGKILL);
}
VS Codeの問題は、プログラムがコンパイルされたときにIntelliSenseがヘッダーkill
の関数を検出できないことですsignal.h
。ヘッダファイルをさらに調査したところ、次のセクションが暗くなることがわかりました。
#ifdef __USE_POSIX
extern int kill (__pid_t __pid, int __sig) __THROW;
#endif /* Use POSIX. */
その他の__USE_POSIX
部品を含みますが、これに限定されずに検査されましたsiginfo_t
。struct sigaction
IntelliSenseヘルプを有効にするためにVS Codeにこれらのマクロ/変数を認識させる方法はありますか?
答え1
関連するヘッダーを含める場所を上に追加できます#define __USE_POSIX
。あるいは、それをコンパイラ引数として定義する場合(フラグ、-D
CMake、またはその他の手段を介して)ファイルで.vscode/c_cpp_properties.json
使用するフラグを指定できます。例:
"configurations": [{
"defines":["__USE_POSIX"]
}]
バラよりhttps://github.com/Microsoft/vscode-cpptools/issues/304この機能に関する追加情報。