macOSでclangを使おうとしたら標準のヘッダーファイルがないと言われた

問題

例えば,

#include <stdio.h>

int main() {
    printf("HelloWorld\n");
    return 0;
}

のようなコードをclangでコンパイルをしようとしたら

HelloWorld.c:1:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.

というようなエラーが出た.

原因

stdio.hがないということなので,標準ライブラリのヘッダーが正しく設定されてないと考えられる. そこでclangの-Iオプションで/usr/include,または/usr/local/includeを指定しようとしたところ,そもそもヘッダーファイルが存在しないということがわかった.

解決策

以下のコマンドでXcode Command Line Toolsをインストールすればよい.

xcode-select --install

この方法を用いた場合,コンパイル時にclangの-Iオプションでパスを指定する必要はない.

参考

stackoverflow.com