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?
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.
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.
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.
/usr/include
używaniexcode-select --install
SIP włączone. Zobacz moją odpowiedź poniżej, aby uzyskać więcej informacji.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”, wykonajxcode-select --install
polecenie, 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/include
mię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 --install
udało się zainstalować w chronionym/usr
katalogu, jest prawdopodobnie fakt, żexcode-select
znajduje się na białej liście SIP.źródło
xcode-select --install
aby zdobyć narzędzia.