如何在 Mountain Lion 上编译 gcc-4.0

如何在 Mountain Lion 上编译 gcc-4.0

到目前为止,我已经成功启动了配置,但是当我输入 make 时,过了一段时间后出现了以下错误(有很多编译成功):

ld: 未知/不支持的架构名称:-arch i686
/usr/bin/libtool:内部链接编辑命令失败
make[2]: *** [libgcc_s.dylib] 错误 1
make[1]: *** [libgcc.a] 错误 2
make:*** [all-gcc] 错误 2

有没有办法告诉 gcc 不要为 i686 架构进行自身编译?

uname -a如果有帮助的话,请参考以下内容:

Darwin Frizlabs-Computer.local 12.2.0 Darwin 内核版本 12.2.0:2012 年 8 月 25 日星期六 00:48:52 PDT;root:xnu-2050.18.24~1/RELEASE_X86_64 x86_64

附言:我知道 gcc-4.0 已经很古老了,但我确实需要它。

答案1

GCC 包含在 XCode 中,但如果您确实只需要 GCC,我还在 GitHub 上找到了这个适用于 OSX GCC 安装程序的项目。

https://github.com/kennethreitz/osx-gcc-installer

osx-gcc-installer 允许您从预先构建的二进制包中安装必要的编译器,或者帮助您创建自己的安装程序。

对于 Lion 和 Mountain Lion 用户,Apple 现在提供了官方的 Xcode 命令行工具包,您可以安装它而无需安装 Xcode 本身!您可以从 Apple 的开发者网站下载它。如果您仍然需要 gcc-4.2,并且使用 Homebrew,则可以使用 homebrew/dupes 中的 apple-gcc42 工具包安装它。

编辑:

好的,去获取 XCode 3.1 附带的旧 4.0 软件包苹果开源页面

下载 gcc-5493 软件包,我使用 README.Apple 中的说明进行了编译测试

对我来说,APPLE 方式的构建并不适用,但 FSF 方式的构建经过修改后就可以适用...

为了以 FSF WAY 方式构建事物,我需要添加--enable-languages=objc,c++,obj-c++限制语言。有些东西导致它出错,我没有时间找出是哪一个。但使用下面的方法可以成功编译。

mkdir darwin
cd darwin
../configure --prefix=/tmp/testplace --enable-languages=objc,c++,obj-c++
make bootstrap
make install

还要确保已安装 XCode 和命令行工具

Using built-in specs.
Target: i686-apple-darwin12.2.0
Configured with: ../configure --prefix=/tmp/testplace --enable-languages=objc,c++,obj-c++
Thread model: posix
gcc version 4.0.1 (Apple Inc. build 5493)

相关内容