/ Usr / include manquant dans OS X El Capitan

19

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

Comment un includedossier peut-il être activé / créé / restauré?

tesla
la source

Réponses:

15

Mise à jour (12 février 2016):

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

Comme l'a noté Ondřej, l'installation simple de Xcode n'installera pas tous les outils de développement en ligne de commande. Vous devez exécuter xcode-select --installdans 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 root. Cela est dû à la nouvelle fonctionnalité de protection de l'intégrité de la sécurité .

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

Avertissement: je n'ai pas testé cela moi-même car je n'ai pas encore mis à niveau vers El Capitan.

ilovejersey
la source
1
Confirmé ! Fonctionne aussi à El Capitan
jeu de mots
1
Je l'ai déjà compris et j'ai oublié de répondre à ma propre question. J'accepterai le vôtre car il est correct.
tesla
3
Sur mon système, le correctif correct consistait simplement à installer l' /usr/includeutilisation xcode-select --installet à laisser SIP activé. Voir ma réponse ci-dessous pour plus d'informations.
Ondřej Čertík
14

Par défaut, lorsque vous installez Xcode ("outils de développement") depuis 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 en ligne de commande", exécutez xcode-select --install, il vous demandera si vous souhaitez obtenir les outils de ligne de commande Xcode + depuis l'App Store (mais j'ai déjà installé Xcode depuis l'App Store et apparemment il n'inclut pas la commande utilitaires de ligne), j'ai donc sélectionné "installer" et installé /usr/includeentre autres.

En ce qui concerne la protection de l'intégrité du système (SIP), laissez-la activée, car cela semble être une bonne chose. La raison xcode-select --installpour laquelle l'installation dans le /usrrépertoire protégé a réussi est probablement parce qu'elle xcode-selectest mise en liste blanche par SIP.

Ondřej Čertík
la source
1
Je pensais que Xcode 8.x incluait les outils de ligne de commande, mais il fallait juste le faire sur une nouvelle installation de MacOS Sierra . J'ai d'abord installé Xcode, puis j'ai dû faire le xcode-select --installpour obtenir les outils.
leanne