Pourquoi / usr / include est-il manquant? J'ai installé Xcode et les outils de ligne de commande (Mojave)


6

Je viens de mettre à niveau Mojave à partir de High Sierra et d’installer Xcode ainsi que ses outils de ligne de commande et des outils supplémentaires. Rien ne compilera depuis le terminal, tout indique que / usr / include est manquant!

J'ai vérifié et TOUS les répertoires liés au développement sous / usr sont manquants!

Une idée pour régler le problème?

Réponses:


10

Vous devez exécuter une autre étape après avoir installé les outils de ligne de commande:

installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Pourquoi? Aucune idée, nouvel outil habituel de développement des outils de construction d’OS Apple.


3
Nicholas Smith: Comment l'avez-vous découvert?
Bryan Dunphy

1
Je n'ai même pas de répertoire de packages?!
nohillside

Je l'ai vu sur StackOverflow à un moment donné et cela me restait dans la tête.
Nicholas Smith

Vous avez probablement besoin des outils de ligne de commande avant d’essayer cela. Voir cette réponse .
ephsmith

1
Vous pourriez avoir besoin d'utiliser sudo pour que cette commande fonctionne
stackErr

4

Le "pourquoi" vient du fait qu'Apple a déconseillé de posséder un fichier / usr / include distinct du SDK. Vous ne devriez pas compter sur sa progression.

Les compilateurs savent déjà trouver leurs inclus dans le SDK, il n’ya donc plus vraiment besoin du répertoire / usr / include. Vous pouvez trouver le répertoire d'installation du SDK pour les fichiers d'inclusion à l'aide de xcrun --show-sdk-path


4
Est-ce documenté quelque part?
Mark

Sauf le fait que macOS est certifié (était) unix04.
lanza

Être conforme à la spécification Single Unix ou à POSIX ne nécessite pas que / usr / include soit présent dans le système de fichiers.
Perry

Et oui, c'est documenté dans la documentation du SDK.
Perry

la compilateurs pourrait savoir, mais que diriez-vous de divers outils de configuration, par exemple. autoconf. Je crois que beaucoup de macros autoconf sont écrites avec l’hypothèse que quelque chose ait de sens dans / usr Par exemple. AC_CHECK_HEADER fonctionnerait-il toujours?
Dima Pasechnik
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.