我最后通过重新安装命令行工具解决了这个问题,如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>
如果您需要任何信息,请告诉我,我会提供给您。感谢您的耐心等待!
答案 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上的工作方式:
打开终端
type - &gt; xcode-select --install
弹出窗口会向您询问有关安装工具的信息
选择安装工具
等待安装完成
答案 2 :(得分:10)
以下是在OS X Mavericks上更新XCode的手动方法:
进入开发者网站http://developer.apple.com
然后转到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
,这是应该使用的路径。