Brakujące / usr / include w OS X El Capitan


19

Próbowałem zbudować aplikację zależną od PJSIPlib, w której powinny znajdować się nagłówki /usr/include. Ale nie ma /usr/includefolderu i nie mogę go utworzyć, nawet moje konto ma uprawnienia administratora.

Jak można includeaktywować / utworzyć / przywrócić folder?

Odpowiedzi:


15

Aktualizacja (12 lutego 2016 r.):

W końcu zainstalowałem El Capitan i mogę teraz potwierdzić, że odpowiedź Ondřego Čertíka jest poprawna. Zdecydowanie zalecam zainstalowanie narzędzi programistycznych z wiersza poleceń zamiast wyłączania SIP.

Jak zauważył Ondřej, sama instalacja Xcode nie spowoduje zainstalowania wszystkich narzędzi programistycznych z linii poleceń. Musisz wykonać xcode-select --installw terminalu.


Oryginalny post (5 grudnia 2015 r.):

Dostęp do zapisu w / System, / bin, / sbin, / usr, / etc, / tmp i / var został domyślnie wyłączony w El Capitan, nawet dla roota. Wynika to z nowej funkcji Security Integrity Protection .

Aby wyłączyć SIP , uruchom komputer w trybie odzyskiwania i wykonaj polecenie csrutil disablew Terminalu.

Oświadczenie: Nie testowałem tego sam, ponieważ nie dokonałem jeszcze aktualizacji do El Capitan.


1
Potwierdzony ! Działa również w El Capitan
pun

1
Już to rozgryzłem i zapomniałem odpowiedzieć na własne pytanie. Przyjmę twój, ponieważ jest poprawny.
tesla,

3
W moim systemie poprawą była instalacja i /usr/includeużywanie xcode-select --installSIP włączone. Zobacz moją odpowiedź poniżej, aby uzyskać więcej informacji.
Ondřej Čertík,

14

Domyślnie, gdy instalujesz Xcode („narzędzia programistyczne”) z App Store na El Capitan, nie instaluje on „narzędzi programistycznych z linii poleceń”, które obejmują /usr/include. Aby zainstalować „narzędzia programistyczne wiersza polecenia”, wykonaj xcode-select --installpolecenie, wyświetli się pytanie, czy chcesz pobrać narzędzia wiersza polecenia Xcode + ze sklepu App Store (ale mam już zainstalowany Xcode ze sklepu App Store i najwyraźniej nie zawiera polecenia narzędzia liniowe), więc wybrałem „zainstaluj” i to zainstalowałem /usr/includemiędzy innymi.

Jeśli chodzi o ochronę integralności systemu (SIP), pozostaw tę opcję włączoną, ponieważ wydaje się to dobrą rzeczą. Powodem, dla którego xcode-select --installudało się zainstalować w chronionym /usrkatalogu, jest prawdopodobnie fakt, że xcode-selectznajduje się na białej liście SIP.


1
Myślałem, że Xcode 8.x zawiera narzędzia wiersza poleceń, ale po prostu musiałem to zrobić na nowej instalacji MacOS Sierra . Najpierw zainstalowałem Xcode, a potem musiałem zrobić, xcode-select --installaby zdobyć narzędzia.
leanne
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.