web-dev-qa-db-ja.com

clang ++:致命的なエラー: 'unistd.h'ファイルが見つかりません

OS X 10.10.2を使用して Mac OS XのClang v。3.6.0をダウンロードし、簡単なHello Worldプログラムをコンパイルしてみます。

私が使用するコマンドは次のとおりです。
clang.にダウンロードしたと想定)

cd .
./clang+llvm-3.6.0-x86_64-Apple-darwin/bin/clang++ main.cpp

結果はこれです:

In file included from main.cpp:1:
In file included from ./clang+llvm-3.6.0-x86_64-Apple-darwin/bin/../include/c++/v1/iostream:37:
./clang+llvm-3.6.0-x86_64-Apple-darwin/bin/../include/c++/v1/__config:23:10: fatal error: 'unistd.h' file not
  found

ファイルunistd.hがないため、これは、

find . -name unistd.h

0の結果が得られます。

LibC++ソースコード v。3.6.0をダウンロードしてみましたが、unistd.hが含まれていません。そのファイルの公式/バニラバージョン、およびそれによって参照され、メタ参照されているファイルはどこにありますか?

13
user4664340

ClangにはCライブラリまたはシステムヘッダーが含まれていません。OSXでプログラミングする場合はXcodeをインストールする必要があります。 このページ Xcode全体をインストールしない場合は、詳細がいくつかあります。パッケージでは、コマンドラインツールのみを使用して回避できます。

Xcode /コマンドラインツールをインストールしたら、Xcodeに含まれているclangとgccのバージョンまたはダウンロードしたバージョンを使用できますが、通常は Macports または Homebrew を使用する方が簡単です。 =どちらかの最新バージョンを使用する場合。

7
user657267

xcode-select --installを実行すると、そのエラーは消えました。

(私はHomeBrewのLLVMとclangのみを定期的に更新しているため、上記のコマンドを使用して修正するまで、私の元のmacosヘッダーは古く、存在していなかったはずです。)

3
Navin

unistd.hはCまたはC++ヘッダーではありません!これはPOSIXヘッダーです。

XCodeはそれから来るのでインストールできますが、それがClangランタイムと互換性があるかどうかは正直わかりません。私はMacの人ではありません。

おそらく、代替案を見つけることができます。たとえば、必要な方法はありませんunistd.h「Hello world」プログラムをコンパイルするには!