繁体   English   中英

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

[英]clang++: fatal error: 'unistd.h' file not found

使用OS X 10.10.2,我下载了适用于Mac OS X v.3.6.0的Clang ,并尝试编译一个简单的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 我在哪里可以找到该文件的官方/ vanilla版本,以及由它引用和元引用的文件?

Clang不包括交流库或系统头,如果你想在OS X上编程,你需要安装Xcode。如果你不想安装整个Xcode包, 这个页面有更多的细节,你可以逃脱仅限命令行工具。

一旦你安装了Xcode /命令行工具,你可以使用Xcode或你下载的那个版本的clang和gcc,尽管如果你想使用最新版本的任何一个,通常更容易使用MacportsHomebrew

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

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

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

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

也许你可以找到另一种选择; 例如, 你不可能需要unistd.h来编译一个“Hello world”程序!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM