clang++: fatal error: 'unistd.h " fichier non trouvé
L'utilisation d'OS X 10.10.2, j'ai télécharger Clang pour Mac OS X v. 3.6.0, et essayez de compiler un simple programme "Hello World".
La commande que j'utilise sont les suivants:
(ce qui suppose que vous avez téléchargé clang
à .
)
cd .
./clang+llvm-3.6.0-x86_64-apple-darwin/bin/clang++ main.cpp
Le résultat est le suivant:
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
qui fait sens, comme il n'existe pas de fichier unistd.h
, comme vérifiables par
find . -name unistd.h
qui donne 0
résultats.
J'ai essayé de télécharger le LibC++ code source v. 3.6.0 mais même qui ne contient pas de unistd.h
. Où puis-je trouver l'officiel/vanille version de ce fichier, et les fichiers qui sont référencés, et les méta-référencées par elle?
Vous devez installer xcode.
Ce qui se passe si vous essayez d'effectuer une recherche à l'extérieur de votre clang dossier pour l'en-tête? Par exemple, ou à la Bibliothèque /Système/Bibliothèque?
J'ai eu cette erreur en essayant de "brasser de la mise à niveau de postgresql' sur OSX 10.11.4. de El Capitan. Pour moi, il ressemble à mon xcode avais obtenu un an de date ...
Ce qui se passe si vous essayez d'effectuer une recherche à l'extérieur de votre clang dossier pour l'en-tête? Par exemple, ou à la Bibliothèque /Système/Bibliothèque?
find / -name unistd.h
trouve les fichiers uniquement dans /Applications/Xcode/*
, et j'ai essayé de s'en sortir sans l'aide de Xcode.J'ai eu cette erreur en essayant de "brasser de la mise à niveau de postgresql' sur OSX 10.11.4. de El Capitan. Pour moi, il ressemble à mon xcode avais obtenu un an de date ...
OriginalL'auteur | 2015-03-30
Vous devez vous connecter pour publier un commentaire.
Clang ne pas inclure une bibliothèque en c ou en-têtes système, vous devez installer Xcode si vous souhaitez programmer sur OS X. Cette page a un peu plus de détails si vous ne souhaitez pas installer l'ensemble du package Xcode, vous pouvez vous en sortir avec les outils de ligne de commande uniquement.
Une fois que vous avez Xcode /outils de ligne de commande installé, vous pouvez soit utiliser les versions de clang et gcc fourni avec Xcode, ou celui que vous avez téléchargé, mais il est généralement plus facile à utiliser Macports ou Homebrew si vous êtes à la recherche pour utiliser jusqu'à la date de la version.
-I
dans n'importe quel bruit de la version et de point d'Xcode inclure des fichiers, par exempleclang++ -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include main.cpp
. Merci!Les outils de ligne de commande pour Xcode peut être installé en exécutant
xcode-select --install
(et vous aurez besoin de les réinstaller à chaque fois que Xcode est mis à jour)OriginalL'auteur user657267
Que l'erreur a disparu après l'exécution de
xcode-select --install
.(Je ne garde que HomeBrew de LLVM et clang régulièrement mis à jour, mon origine macos en-têtes doivent avoir été ancienne/inexistant jusqu'à ce que j'ai utilisé la commande ci-dessus pour résoudre ce problème.)
OriginalL'auteur Navin
unistd.h
n'est pas un C ou un en-tête C++! C'est une POSIX-tête.Vous pouvez en installer XCode que ça va venir, mais honnêtement, je ne sais pas si ça va être du tout compatible avec le Cliquetis de l'exécution. Je ne suis pas un Mac.
Vous pouvez peut-être trouver un autre; par exemple, il n'y a aucun moyen que vous devez
unistd.h
pour compiler un programme "Hello world"!unistd.h
? Est-ce pour cette raison que j'ai "besoin" de la version Apple? Le point de l'ensemble de cette entreprise était de minimiser les Xcode dépendance... Est-il pas de génériqueunistd.h
pour les systèmes basés sur UNIX?Xcode en-têtes sont très bien avec clang, en fait c'est la seule façon d'obtenir le système / c-têtes sur OS X (à moins de les copier à partir d'apple source de la page), OP aurez besoin de Xcode pour faire quoi que ce soit, à moins qu'il n'utilise pas les en-têtes que ce soit. L'installation manuelle de clang sur OS X est aussi généralement une perte de temps, étant donné l'existence de macports et / ou d'un thé.
Bien, très bien, vous feriez mieux de commencer sur une réponse alors! ATM, tu sembles être la diffusion de vos réponse à travers les commentaires, qui ne sont pas pour cela....
OriginalL'auteur Lightness Races in Orbit