Используя OS X 10.10.2, я загружаю Clang для 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
, Где я могу найти официальную / ванильную версию этого файла, а также файлы, на которые имеются ссылки и мета-ссылки?
Clang не включает библиотеку c или системные заголовки, вам нужно установить Xcode, если вы хотите программировать на OS X. Эта страница есть некоторые подробности, если вы не хотите устанавливать весь пакет XCode, вы можете обойтись только с помощью инструментов командной строки.
После того, как вы установили Xcode / инструменты командной строки, вы можете использовать версии clang и gcc, включенные в Xcode, или ту, которую вы скачали, хотя обычно это проще использовать MacPorts или же Homebrew если вы хотите использовать последние версии либо.
Эта ошибка исчезла после запуска xcode-select --install
,
(Я только регулярно обновляю LLVM и clang HomeBrew, поэтому мои оригинальные заголовки macos должны были быть древними / не существовать, пока я не использовал вышеуказанную команду, чтобы это исправить.)
unistd.h
не заголовок C или C ++! Это заголовок POSIX.
Вы можете установить XCode так, как он будет получен, но я, честно говоря, не знаю, будет ли он вообще совместим со средой выполнения Clang. Я не человек Mac.
Возможно, вы можете найти альтернативу; например, нет никакого способа вам нужно unistd.h
составить программу «Hello world»!