在macOS Mojave 10.14.6上找不到_ctermid.h文件。

4
在 macOS Mojave 10.14.6 (18G7016) 上,gcc 找不到文件 _ctermid.h 了。
In file included from /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/wchar.h:90,
                 from /usr/local/Cellar/gcc/10.2.0_2/include/c++/10.2.0/cwchar:44,
                 from /usr/local/Cellar/gcc/10.2.0_2/include/c++/10.2.0/bits/postypes.h:40,
                 from /usr/local/Cellar/gcc/10.2.0_2/include/c++/10.2.0/bits/char_traits.h:40,
                 from /usr/local/Cellar/gcc/10.2.0_2/include/c++/10.2.0/string:40,
                 from /Users/Projects/test.h:10,
                 from /Users/Projects/test.cpp:1:
/usr/local/Cellar/gcc/10.2.0_2/lib/gcc/10/gcc/x86_64-apple-darwin18/10.2.0/include-fixed/stdio.h:219:10: fatal error: _ctermid.h: No such file or directory
  219 | #include <_ctermid.h>

这可能是由于macOS软件更新或者brew upgrade导致的。

这可能与一个旧问题有关,在升级到Mojave后无法在Mac上编译C程序

我尝试了建议的解决方案:

  • 使用(sudo) rm -rf /Library/Developer/CommandLineTools删除整个CommandLineTools文件夹,并重新安装它xcode-select --install
  • 使用open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg安装macOS_SDK_headers_for_macOS_10.14
  • 重新安装brewgcc(也包括gcc@9gcc@8

但以上方法都没有奏效。


"brew doctor" 命令提示:```警告:新版本的命令行工具已经发布。 请从“系统偏好设置”中的“软件更新”中更新它们,或运行以下命令: softwareupdate --all --install --force如果没有显示更新,请运行以下命令: sudo rm -rf /Library/Developer/CommandLineTools sudo xcode-select --install``` 我已经执行了后者。 - M. Heuer
1个回答

5

出于某些原因,xcode-select --install不能安装最新的macOS 10.14(Mojave)命令行工具。

它总是安装Xcode 10版本的工具。

为了解决问题,请下载并安装Command Line Tools for Xcode 11.3.1。这是Mojave下最新的CLT版本。

如果上面的直接链接无法使用,请前往“Apple开发者更多下载”,使用Apple开发者账户登录,并搜索“Command Line Tools for Xcode 11.3.1”。请注意,这不是CLT的最新版本,但是更近期的版本无法在Mojave上安装。


直接链接无法使用,所以我按照你描述的方式登录了。现在,使用Xcode 11.3.1的CLT再次像魔术般正常工作了。非常感谢! - M. Heuer
愿 StackOverflow 的神灵保佑你。我的问题已经解决了。 - interoception

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接