确保下载了最新的“命令行工具”包,并从终端(命令行)运行:open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
从相当广泛的评论…中提取一个半连贯的答案
序言
很多时候,xcode-select --install一直是正确的解决办法,但这一次似乎没有帮助。您试过运行主Xcode GUI界面吗?它可能会为你安装一些额外的软件和清理。我在安装Xcode 10.0之后就这样做了,但一周前甚至更早,在升级到Mojave之前很久。
我注意到如果你的GCC在/usr/local/bin,您可能没有使用Xcode中的GCC;这通常是安装在/usr/bin.
我也更新了MacOS10.14Mojave和Xcode 10.0。然而,这两个系统/usr/bin/gcc和制度/usr/bin/clang为我工作(Apple LLVM version 10.0.0 (clang-1000.11.45.2) Target: x86_64-apple-darwin18.0.0(对两个人来说。)我有一个问题,我的家乡建的GCC 8.2.0没有找到标题/usr/include,这与您的问题类似。/usr/local/bin/gcc也找不到头。
我做了一些比较,我的莫哈韦机器没有/usr/include一点也不/usr/bin/clang能够编译OK。标题(_stdio.h,加上下划线)在我的旧/usr/include它现在不见了(因此我对GCC的问题8.2.0)。我跑了xcode-select --install上面写着“xcode-select: note: install requested for command line developer tools“然后运行了一个GUI安装程序,它向我展示了一个我同意的许可证,它下载并安装了命令行工具-至少它声称是这样的。
然后我运行了xcode GUI(命令空间,xcode,ref),它说它需要安装更多的软件,但仍然没有。/usr/include..但我可以用/usr/bin/clang和/usr/bin/gcc-和-v选项表明他们正在使用InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
工作溶液我找到办法了。如果我们使用的是Xcode 10,您将注意到如果您导航到/usr在Finder中,您将不再看到一个名为“include”的文件夹,这就是为什么终端抱怨没有包含在‘include’文件夹中的头文件。在Xcode 10.0发行说明,上面说有一个包裹:/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
您应该安装该软件包,使其具有/usr/include文件夹已安装。那你就可以走了。
当所有其他操作都失败时,请阅读手册,或者,在本例中,阅读发布说明。当我发现苹果想背弃Unix的传统时,我并不感到惊讶,但我很失望。如果他们小心的话,他们会把我赶走的。谢谢你提供这信息。
在命令行中使用以下命令安装了包后,我有/usr/include再次,我的GCC 8.2.0再次作品。open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
下载命令行工具
如维萨指出有价值评语,您需要下载Mojave 10.14上Xcode 10.1的命令行工具包,您可以这样做:
您需要使用Apple ID登录才能获得下载。下载完毕后,安装命令行工具包。然后按照“工作解决方案”一节中的说明安装标头。
这在Mojave 10.14.1上对我起了作用。我以前肯定下载过这个,但当我回答这个问题时,我已经忘记了。
升级到Mojave 10.14.4和XCode 10.2
我已经更新到Mojave 10.14.4,XCode 10.2命令行工具也被升级(或者XCode 10.1命令行工具升级到10.2)。这个open上面显示的命令修复了丢失的标头。如果将主XCode升级到10.2,然后重新安装命令行工具和标头包,可能还会有一些冒险之处。