13

使用 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++ 源代码v. 3.6.0,但即使它不包含unistd.h. 我在哪里可以找到该文件的官方/原版版本,以及它引用和元引用的文件?

4

3 回答 3

7

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

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

于 2015-03-31T00:38:49.680 回答
3

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

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

于 2017-08-30T18:03:41.660 回答
-1

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

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

也许您可以找到替代方案;例如,你不需要unistd.h编译一个“Hello world”程序!

于 2015-03-30T23:08:16.410 回答