构建C ++在OSX 10.9中不起作用

时间:2013-10-24 20:26:03

标签: c++ macos gcc osx-mavericks

更新

我最后通过重新安装命令行工具解决了这个问题,如link所示。 对不起,对不起!

初步问题

我刚刚升级到OSX Mavericks,我不能再让编译器工作了。 我一直在使用macports的gcc48和vim / sb2,一切都运行得很好。现在我包含的任何库都会产生大量错误。我不是很有经验,我不知道该做什么,或者搜索什么。我只是想让它像以前一样工作。以下是编写基本“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>

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

5 个答案:

答案 0 :(得分:26)

XCode 5 / Mavericks更改了标题所在的默认值。

在Mac OS X / XCode的早期版本中,您会在/usr/include中找到标题。

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

问题是文件不存在;它们位于/Applications/Xcode.app/Contents/Developer之下。

你可以使用spec文件来让它再次保持一致,但最重要的是重建gcc。

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

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

  

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

答案 1 :(得分:14)

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

  1. 打开终端

  2. type - &gt; xcode-select --install

  3. 弹出窗口会向您询问有关安装工具的信息

  4. 选择安装工具

  5. 等待安装完成

答案 2 :(得分:10)

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

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

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

答案 3 :(得分:2)

我正在使用MacO Sierra 10.12.4,遇到了同样的问题。 我用以下方法解决了这个问题:

/usr/bin/gcc

答案 4 :(得分:0)

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

brew uninstall gcc@5

在构建输出中,我注意到诸如/usr/local/Cellar/gcc@5之类的路径,同时还安装了gcc@8,这是应该使用的路径。