clang ++:致命错误:' unistd.h'文件未找到

时间:2015-03-30 22:42:19

标签: c++ macos clang llvm unistd.h

使用OS X 10.10.2,我下载Clang for Mac OS X 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++ source code v.3.6.0,但即使不包含unistd.h。我在哪里可以找到该文件的官方/ vanilla版本,以及由它引用和元引用的文件?

3 个答案:

答案 0 :(得分:6)

Clang不包含交流库或系统标题,如果您想在OS X上编程,则需要安装Xcode。This page如果您不想安装,请提供更多详细信息整个Xcode包,你只能使用命令行工具。

一旦安装了Xcode /命令行工具,您可以使用Xcode中包含的clang和gcc版本或您下载的版本,尽管它通常更容易使用Macports或{{3如果您正在寻找使用其中任何一个版本的最新版本。

答案 1 :(得分:3)

运行xcode-select --install后该错误消失了。

(我只保留HomeBrew的LLVM和clang定期更新,所以我的原始macos标题必须古老/不存在,直到我使用上述命令来修复它。)

答案 2 :(得分:0)

unistd.h不是C或C ++标头!这是一个POSIX标题。

你可以安装XCode,因为它来自那里,但老实说,我不知道它是否完全与Clang运行时兼容。我不是Mac人。

也许你可以找到另一种选择;例如,你无法unistd.h编译一个&#34; Hello world&#34;程序<!/强>