18

更新:

我最终通过重新安装命令行工具解决了这个问题,如这个链接所示。抱歉,添麻烦了!

最初的问题

我刚刚升级到 OSX Mavericks,我不能再让编译器工作了。我一直在使用带有 vim/sb2 的 macports 的 gcc48,一切正常。现在,我包含的任何库都会产生大量错误。我不是很有经验,我不知道该做什么,或寻找什么。我只是希望它像以前一样工作。以下是编译基本的“hello world”程序时所说的内容:

In file included from /opt/local/include/gcc48/c++/bits/postypes.h:40:0,
             from /opt/local/include/gcc48/c++/iosfwd:40,
             from /opt/local/include/gcc48/c++/ios:38,
             from /opt/local/include/gcc48/c++/ostream:38,
             from /opt/local/include/gcc48/c++/iostream:39,
             from ceva.cpp:1:
/opt/local/include/gcc48/c++/cwchar:44:19: fatal error: wchar.h: No such file or directory
#include <wchar.h>

如果您需要任何信息,请告诉我,我会提供给您。感谢您的耐心等待!

4

5 回答 5

27

[2019 年添加 - Mojave/Catalina] XCode 10 已删除 中的标题放置/usr/include,即使使用命令行工具也是如此。如果您想要标题,并且您正在使用,您应该能够安装一个过渡包,该包在 Mojave 上可用。Catalina 上没有此软件包。标头位于相应版本的 SDK 中。

XCode 5/Mavericks 更改了标头所在位置的默认值。

在以前版本的 Mac OS X/XCode 上,您会在/usr/include.

当您在旧版本上构建 gcc 时,它会从该位置获取标头,并在您尝试构建代码时立即在那里查找它们。

问题是文件不存在;他们在下面的某个地方/Applications/Xcode.app/Contents/Developer

您可以使用规范文件来使其再次一致地工作,但最明智的做法是重建 gcc。

如前所述,您可以使用 安装命令行工具xcode-select --install,这将重新安装开发人员工具,包括/usr/include.

当我升级操作系统时,我倾向于重新安装诸如 gcc 之类的东西,因为由于环境的变化而遇到其他错误。这只是我养成的习惯。这可能不是最好的习惯,但它在很多场合都让我免于痛苦。

[2017 年添加] 作为附录,如果您安装command line tools,那么标题也将被放入/usr/include。安装命令行工具的命令是xcode-select --install- 这将允许您使用大多数编译器,而无需手动指定标头的位置。

于 2013-10-24T22:06:42.983 回答
14

这就是我在 Mac osx Mavericks 上工作的方式:

  1. 打开终端

  2. 输入--> xcode-select --install

  3. 将出现一个弹出窗口,询问您有关安装工具的信息

  4. 选择安装工具

  5. 等待安装完成

于 2013-10-25T00:55:02.913 回答
10

这是在 OS X Mavericks 上更新 XCode 的手动方法:

  1. 进入开发者网站http://developer.apple.com

  2. 然后转到 Apple 开发人员的下载,这里有一个 Mavericks 的命令行工具安装程序 - 这是链接(但您需要一个开发人员帐户才能使用该链接)http://developer.apple.com/downloads/index。行动?q=xcode

于 2013-11-01T05:13:17.807 回答
2

我正在使用 MacOs Sierra 10.12.4,遇到了同样的问题。我通过使用解决了它:

/usr/bin/gcc
于 2017-04-18T15:28:52.957 回答
0

对我来说,解决方法是卸载旧的损坏 gcc:

brew uninstall gcc@5

我注意到/usr/local/Cellar/gcc@5构建输出中的路径,whilegcc@8也已安装并且是应该使用的路径。

于 2019-04-05T08:12:16.777 回答