【问题标题】:Building C++ not working in OSX 10.9构建 C++ 在 OSX 10.9 中不起作用
【发布时间】:2013-11-03 18:03:03
【问题描述】:

更新:

我最后通过重新安装命令行工具解决了这个问题,如link所示。 给您添麻烦了!

最初的问题

我刚刚升级到 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>

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

【问题讨论】:

  • XCode 和 clang 呢?
  • 对于其他不适合的人,试试这个:cd /Library/Developer/CommandLineTools/Packages/ 然后open . 然后双击 pkg

标签: c++ macos gcc osx-mavericks


【解决方案1】:

[添加 2019 - Mojave/Catalina] XCode 10 已删除 /usr/include 中的标题放置,即使使用命令行工具也是如此。如果您想要标头,并且您正在使用,您应该能够安装 transitional package,它在 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 - 这将允许您使用大多数编译器而无需手动指定标头的位置。

【讨论】:

    【解决方案2】:

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

    1. 打开终端

    2. 类型 --> xcode-select --install

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

    4. 选择安装工具

    5. 等待安装完成

    【讨论】:

    • 当我尝试时说软件无法从软件更新服务器获得 - 它是否已被删除?
    • 试试下面的方法可以吗?
    【解决方案3】:

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

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

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

    【讨论】:

    • +1 用于指出手动安装方法。有时您的系统并不能让您以简单的方式做到这一点。
    【解决方案4】:

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

    /usr/bin/gcc
    

    【讨论】:

    • 这正在使用clang,因此不是无法使用gcc的解决方案
    【解决方案5】:

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

    brew uninstall gcc@5
    

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

    【讨论】:

      猜你喜欢
      • 2014-02-26
      • 1970-01-01
      • 2013-12-23
      • 2013-06-23
      • 1970-01-01
      • 2016-06-09
      • 2014-05-10
      • 2014-05-28
      • 1970-01-01
      相关资源
      最近更新 更多