簡體   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