clang++: фатальная ошибка: 'unistd.H-файл не найден

используя OS X 10.10.2, я загружаю Clang для Mac OS X V. 3.6.0 и попробуйте скомпилировать простую программу Hello World.

команды, которые я использую эти:
(предполагается, что вы скачали clang to .)

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++ исходный код В. 3.6.0 но даже это не содержит unistd.h. Где я могу найти официальную / ванильную версию этого файла и файлы, на которые он ссылается, и на которые он ссылается?

3 ответов


Clang не включает библиотеку c или системные заголовки, вам нужно установить Xcode, если вы хотите программировать на OS X. на этой странице есть еще некоторые детали, если вы не хотите устанавливать весь пакет Xcode, вы можете уйти с помощью инструментов командной строки.

после установки инструментов Xcode / командной строки вы можете использовать версии clang и gcc, включенные в Xcode, или тот, который вы загрузили, хотя обычно его проще использовать системы MacPorts или доморощенного Если вы хотите использовать новые версии тоже.


эта ошибка исчезла после запуска xcode-select --install.

(Я только регулярно обновляю LLVM и clang HomeBrew, поэтому мои оригинальные заголовки macos должны были быть древними / несуществующими, пока я не использовал вышеуказанную команду, чтобы исправить это.)


unistd.h не является заголовком C или c++! Это заголовок POSIX.

вы можете установить XCode, как это будет из этого, но я честно не знаю, будет ли это вообще совместимо с Clang runtime. Я не человек Мака.

возможно, вы можете найти альтернативу; например,нет никакой необходимости unistd.h для компиляции программы "Hello world"!