J'ai finalement résolu le problème en réinstallant les outils de ligne de commande, comme indiqué dans ce lien . Désolé pour le dérangement!
Je viens de passer à OSX Mavericks et je ne peux plus faire fonctionner le compilateur. J'utilise gcc48 de macports avec vim/sb2 et tout fonctionnait très bien. Maintenant, toute bibliothèque que j'inclus donne des tonnes d'erreurs. Je ne suis pas très expérimenté et je ne sais pas quoi faire, ni quoi chercher. Je veux juste que ça marche comme avant. Voici ce qui est dit lors de la compilation d'un programme de base "hello world":
In file included from /opt/local/include/gcc48/c++/bits/postypes.h:40:0,
from /opt/local/include/gcc48/c++/iosfwd:40,
from /opt/local/include/gcc48/c++/ios:38,
from /opt/local/include/gcc48/c++/ostream:38,
from /opt/local/include/gcc48/c++/iostream:39,
from ceva.cpp:1:
/opt/local/include/gcc48/c++/cwchar:44:19: fatal error: wchar.h: No such file or directory
#include <wchar.h>
Si vous avez besoin d'informations, dites-le-moi et je vous les fournirai. Merci pour votre patience!
[Ajouté 2019 - Mojave/Catalina] XCode 10 a supprimé le placement des en-têtes dans
/usr/include
, même avec les outils de ligne de commande. Si vous voulez des en-têtes et que vous y êtes, vous devriez pouvoir installer un package de transition , qui est disponible sur Mojave. Ce package n'est pas présent sur le Catalina. Les en-têtes se trouvent dans le SDK pour la version appropriée.
XCode 5/Mavericks ont modifié les valeurs par défaut pour l'emplacement des en-têtes.
Sur les versions précédentes de Mac OS X/XCode, vous auriez trouvé des en-têtes dans /usr/include
.
Lorsque vous avez créé gcc sur l'ancienne version, il a récupéré les en-têtes de cet emplacement et les recherche maintenant lorsque vous essayez de créer du code.
Le problème est que les fichiers ne sont pas là; ils sont quelque part sous /Applications/Xcode.app/Contents/Developer
.
Vous pouvez utiliser un fichier de spécifications pour le faire fonctionner à nouveau de manière cohérente, mais la chose la plus saine à faire est de reconstruire gcc.
Comme cela a également été mentionné, vous pouvez installer les outils de ligne de commande à l'aide de xcode-select --install
, qui réinstallera les outils de développement, y compris les en-têtes dans /usr/include
.
J'ai tendance à réinstaller des choses comme gcc lorsque je mets à niveau mon système d'exploitation car je rencontre d'autres erreurs dues à des changements dans l'environnement. C'est juste une habitude que j'ai prise. Ce n'est peut-être pas la meilleure habitude, mais cela m'a évité la douleur à de nombreuses reprises.
[ajouté 2017] En complément, si vous installez le
command line tools
, les en-têtes seront placés dans/usr/include
ainsi que. La commande pour installer les outils de ligne de commande estxcode-select --install
- cela vous permettra d'utiliser la plupart des compilateurs sans avoir à spécifier manuellement l'emplacement des en-têtes.
Voici comment je l'ai fait fonctionner sur Mac osx Mavericks:
Terminal ouvert
tapez -> xcode-select --install
Une fenêtre contextuelle apparaîtra vous demandant des informations sur l'installation des outils
choisissez les outils d'installation
attendre l'installation pour terminer
Voici une méthode manuelle pour mettre à jour XCode sur OS X Mavericks:
Allez sur le site des développeurs http://developer.Apple.com
Ensuite, allez dans Téléchargements pour Apple développeurs et il y a un programme d'installation des outils de ligne de commande pour Mavericks - voici le lien (mais vous aurez besoin d'un compte développeur pour que le lien fonctionne) http : //developer.Apple.com/downloads/index.action? q = xcode
J'utilise MacOs Sierra 10.12.4, j'ai le même problème. Je l'ai résolu en utilisant:
/usr/bin/gcc
Pour moi, le correctif consistait à désinstaller l'ancien gcc cassé:
brew uninstall gcc@5
J'ai remarqué des chemins comme /usr/local/Cellar/gcc@5
dans la sortie du build, tandis que gcc@8
a également été installé et est celui qui était censé être utilisé.