OS X El Capitan 中缺少 /usr/include

OS X El Capitan 中缺少 /usr/include

我试图构建一个依赖于PJSIPlib 的应用程序,该 lib 中应该有一些标题/usr/include。但没有/usr/include文件夹,即使我的帐户具有管理员权限,我也无法创建一个。

如何include激活/创建/恢复文件夹?

答案1

更新(2016年2月12日):

我终于安装了 El Capitan,现在可以确认 Ondřej Čertík 的答案是正确的。我强烈建议安装命令行开发人员工具,而不是禁用 SIP。

正如 Ondřej 所说,仅仅安装 Xcode 并不能安装所有命令行开发工具。您必须xcode-select --install在终端中执行。


原始帖子(2015 年 12 月 5 日):

在 El Capitan 中,对 /System、/bin、/sbin、/usr、/etc、/tmp 和 /var 的写入权限已默认禁用,即使是 root 用户也是如此。这是由于新的安全完整性保护特征。

禁用 SIPcsrutil disable,启动到恢复模式并在终端中执行命令。

免责声明:由于我还没有升级到 El Capitan,所以我自己还没有测试过这个。

答案2

默认情况下,当您从 El Capitan 上的 App Store 安装 Xcode(“开发人员工具”)时,它不会安装包含的“命令行开发人员工具” /usr/include。要安装“命令行开发人员工具”,请执行xcode-select --install,它会提示您是否要从 App Store 获取 Xcode+命令行工具(但我已经从 App Store 安装了 Xcode,它显然不包含命令行实用程序),所以我选择了“安装”,并安装了它以及/usr/include其他东西。

至于系统完整性保护 (SIP),请将其保持启用状态,因为这似乎是件好事。之所以xcode-select --install能够安装到受保护的/usr目录中,可能是因为xcode-select被 SIP 列入了白名单。

相关内容