web-dev-qa-db-fra.com

Manquant / usr / include dans OS X El Capitan

J'essayais de construire une application qui dépend de PJSIP lib qui devrait avoir des en-têtes dans /usr/include. Mais il n'y a pas de dossier /usr/include et je ne peux pas en créer un même mon compte a des droits d'administrateur.

Comment le dossier include peut-il être activé/créé/restauré?

18
tesla

Mise à jour (12 février 2016):

J'ai finalement installé El Capitan et peux maintenant confirmer que la réponse d'Ondřej Čertík est correcte. Je recommande fortement d'installer les outils de développement de ligne de commande au lieu de désactiver SIP.

Comme Ondřej l’a noté, le simple fait d’installer Xcode n’installe pas tous les outils de développement en ligne de commande. Vous devez exécuter xcode-select --install dans Terminal.


Message original (5 décembre 2015):

L'accès en écriture à/System,/bin,/sbin,/usr,/etc,/tmp et/var a été désactivé par défaut dans El Capitan, même pour les utilisateurs root. Cela est dû à la nouvelle fonctionnalité Security Integrity Protection .

Pour désactiver SIP , démarrez en mode de récupération et exécutez la commande csrutil disable dans Terminal.

Disclaimer: Je n'ai pas testé cela moi-même puisque je ne suis pas encore passé à El Capitan.

15
ilovejersey

Par défaut, lorsque vous installez Xcode ("outils de développement") à partir de l'App Store sur El Capitan, il n'installe pas les "outils de développement en ligne de commande" qui incluent le /usr/include. Pour installer les "outils de développement de ligne de commande", exécutez xcode-select --install. Il vous demandera si vous souhaitez obtenir les outils de ligne de commande Xcode + sur l'App Store (mais Xcode est déjà installé sur l'App Store et ne contient apparemment pas utilitaires de ligne de commande), j’ai donc choisi "installer" et le /usr/include installé entre autres choses.

Pour ce qui est de la protection de l'intégrité du système (SIP), laissez cela activé, car cela semble être une bonne chose. La raison pour laquelle xcode-select --install a réussi à installer dans le répertoire protégé /usr est probablement due au fait que xcode-select est inscrit sur la liste blanche par SIP.

14
Ondřej Čertík