【问题标题】:Gcc 4.2 version missing缺少 Gcc 4.2 版本
【发布时间】:2011-12-21 21:39:51
【问题描述】:

在我的带有 osx lion 和 XCode 4.1 的新 macbook pro 上,我遇到了一些 gcc 问题。

在/usr/bin 我找不到gcc-4.2

我只有以下版本:

i686-apple-darwin11-llvm-gcc-4.2
llvm-gcc
llvm-gcc-4.2 

因此,当我尝试通过 port select --set gcc gcc42 选择 gcc42 时,它返回以下错误: Selecting 'gcc42' for 'gcc' failed: could not create new link "/opt/local/bin/gcc": target "/usr/bin/gcc-4.2" doesn't exist

但是port select gcc 给我返回了以下版本:

apple-gcc42
gcc42
llvm-gcc42 (active)
mp-gcc44

我该如何解决这个问题?

谢谢!

【问题讨论】:

    标签: macos gcc macports


    【解决方案1】:

    我篡改了 makefile 的内部结构,发现一个调用的选项提供了太多的参数;将变量替换为在我的机器上调用的函数的实际结果(删除多余的参数)并再次运行 make 。

    【讨论】:

    • 什么选项?注意显示您对 makefile 执行了哪些更改?
    【解决方案2】:

    我遇到了同样的问题。

    我通过符号链接修复了它。

    像这样:

    cd /usr/bin
    

    然后:

    sudo ln -s llvm-gcc-4.2 gcc-4.2
    

    【讨论】:

      【解决方案3】:

      我可以通过符号链接在 Mountain Lion 中解决这个问题:

      sudo ln -s /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2
      

      希望这对某人有所帮助

      【讨论】:

      • 谢谢,这正是我想要的。
      【解决方案4】:

      使用 Xcode 4.3,您需要单独安装命令行工具。 XCode -> Preferences -> Downloads,点击组件按钮,然后点击“命令行工具”选项旁边的安装。

      【讨论】:

        【解决方案5】:

        应该有一个安装了 Xcode 4.1 的/usr/bin/gcc-4.2。然而,随着最近的 Xcode 4.2 更新,Apple 终于删除了他们修改后的标准 gcc-4.2。剩下的是llvm-gcc42(也符号链接到gcc)和clang,较新的非gcc C 编译器。苹果正在过渡到clang;第一步是使用混合llvm-gcc42。使用任何一种新编译器都报告了一些问题。您应该利用这段时间来确定您是否有问题,如果有,请修复您的代码并向 Apple 报告错误。同时,如果您绝对必须拥有旧的 gcc-4.2,则可以通过 MacPorts 构建类似于以前 Apple 修改的版本:

        port install apple-gcc42
        

        但你会逆流而上。

        【讨论】:

        • 谢谢!我已经从 macport 安装了 gcc44,我可以通过sudo port select -set gcc mp-gcc44 选择它。但是我在/usr/bin/ 中找不到它。
        • 好的,我在/opt/loca/bin/找到的其实问题是我正在编译的软件寻找/usr/bin/gcc42IF(${CMAKE_SYSTEM} MATCHES "Darwin-11.*")
        • MacPorts 从不向/usr/bin 安装任何东西;作为 OS X 的一部分由 Apple 独家管理。是否可以使用 CC 环境变量或类似的变量覆盖编译器选择?
        【解决方案6】:

        您可以考虑从源代码code 编译更新的 GCC(例如 4.6.2)。 Apple 不再关心 GCC,但 GCC 自 4.2 以来取得了重大进展

        您可能可以使用您的llvm-gcc42 作为 GCC 编译器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-08-18
          • 2019-04-22
          • 1970-01-01
          • 1970-01-01
          • 2022-12-20
          • 2012-08-30
          • 2021-01-03
          相关资源
          最近更新 更多