__USE_POSIX および WSL ディストリビューションの VS Code

__USE_POSIX および WSL ディストリビューションの VS Code

私は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_tstruct sigaction

IntelliSenseヘルプを有効にするためにVS Codeにこれらのマクロ/変数を認識させる方法はありますか?

答え1

関連するヘッダーを含める場所を上に追加できます#define __USE_POSIX。あるいは、それをコンパイラ引数として定義する場合(フラグ、-DCMake、またはその他の手段を介して)ファイルで.vscode/c_cpp_properties.json使用するフラグを指定できます。例:

"configurations": [{
   "defines":["__USE_POSIX"]
}]

バラよりhttps://github.com/Microsoft/vscode-cpptools/issues/304この機能に関する追加情報。

関連情報