1

运行时rbenv install 1.9.2-p320,我得到以下输出:

错误:这个包必须用 GCC 编译,但是 ruby​​-build 在你的系统上找不到合适的gcc可执行文件。请安装 GCC 并重试。

详细信息:Apple 不再在 4.2 版中包含带有 Xcode 的官方 GCC 编译器。相反,gcc可执行文件是一个符号链接 llvm-gcc,它是 GCC 的修改版本,它输出 LLVM 字节码。

对于大多数程序,llvm-gcc编译器工作正常。但是,早于 1.9.3-p125 的 Ruby 版本与 llvm-gcc. 要构建旧版本的 Ruby,您必须在系统上安装官方 GCC 编译器。

解决问题:使用这些包安装官方 GCC 编译器:https ://github.com/kennethreitz/osx-gcc-installer/downloads

即使您已经安装了 Apple 的 Xcode 命令行工具包,您也需要安装官方的 GCC 编译器来构建旧版本的 Ruby。Xcode 软件包的命令行工具仅包括llvm-gcc.

我已经安装了 Xcode 4.3.2。我是否可以安全地在顶部安装 osx-gcc-installer - 这既可以解决上述问题,又可以让 Xcode 在 iOS 开发中顺利运行?

提前致谢。

4

1 回答 1

4

在 Xcode 之上安装这个包通常是不安全的。它是为那些想要编译器及其依赖项而无需安装 Xcode 的人设计的。如果你安装了 Xcode 的命令行工具,它会覆盖很多文件,并且可能会破坏各种东西。

如果您只关心 iOS 开发,则根本不需要 Xcode 的命令行工具,因此即使它们完全损坏也没关系。但在这种情况下,最好不要安装这些命令行工具,而不是尝试同时安装这两个工具。

一个更安全的替代方法是在 /usr 以外的地方安装编译器。您显然可以通过自己构建它来做到这一点,但这是很多工作。您可能需要查看 Brew apple-gcc42 软件包,该软件包专门设计用于通过添加缺少的工具来补充 Xcode 4.2+ 的命令行工具(全部在 /usr/local/bin 中而不是 /usr/bin 中,并且后缀-4.2)。或者,如果您已经在使用 MacPorts 或 Fink,请尝试使用它们的软件包。(如果你需要帮助告诉不同的包使用 /usr/local/bin/gcc-4.2 而不是 /usr/bin/gcc 等,你可能应该问一个新问题。)

另一个明显的替代方法是使用没有这个问题的 Ruby 1.9.3,而不是 1.9.2。(如果您不想深入了解自己构建东西的繁琐细节,Brew 也为此提供了一个包……)

于 2012-05-31T00:04:25.593 回答