我正在尝试建立一个完全最新的 gcc 环境......基本上是 gcc 4.6.3 和 binutils 2.22。不是 Xcode 4.2.1 附带的相当老的 gcc 4.2.1 (llvm)。我的问题不在于编译(至少现在)。我可以完美地同时编译 binutils、gcc 和两者。但是,每次我尝试编译时,我都会发现类似这样的内容出现在配置输出的末尾
检查在哪里找到目标 ar...刚刚编译
检查在哪里找到目标 as...主机工具
检查在哪里找到目标 cc...刚刚编译
检查在哪里找到目标 c++...刚刚编译
检查在哪里为 libstdc++ 找到目标 c++...刚刚编译
检查在哪里找到目标 dlltool...刚刚编译
检查在哪里找到目标 gcc...刚刚编译
检查在哪里找到目标 gcj...刚刚编译
检查在哪里找到目标gfortran...刚刚编译
检查在哪里找到目标gccgo...主机工具
检查在哪里找到目标ld...主机工具
检查在哪里找到目标lipo...主机工具
检查在哪里找到目标 nm...刚刚编译
检查在哪里找到目标 objdump...刚刚编译
检查在哪里找到目标 ranlib...刚刚编译
检查在哪里找到目标条...刚刚编译
检查在哪里找到目标windres...刚刚编译
检查在哪里可以找到目标windmc...刚刚编译
我在 gcc 源文件夹中为 ld、opcodes、bfd、gas、gprof 和 binutils 创建了符号链接,以获取此输出...(如果有帮助)
正如你所看到的,我可以得到大多数软件的“刚刚编译”的版本,只是我不知道如何编译 as 和 ld。我已经阅读了 ld 文件夹(在 binutils 包中)中的 README 文件,它说要执行:
做所有的ld
我做了并且我已经“制作”了源代码,它告诉我没有什么可做的......
我现在唯一能想到的就是暂时修改我的路径以不包含 ld。这会很容易...
又名快速检查
在哪里
无论如何,在想到这一点后,我立即意识到这将是愚蠢的,因为现在我没有任何东西可以链接 gcc(甚至是新版本的 ld(如果我要工作的话))
因此,总而言之,我正在尝试编译 ld 的新副本并作为...
事实:
- 我正在运行 Mac OS X Lion。
- 我正在尝试使用 Mac OS X Lion (gcc 4.2.1) 附带的默认 gcc 编译 gcc 4.6.3。
- 配置脚本似乎认为我不想编译新的链接器和汇编器。
- 我已经成功构建了一个可以工作的 gcc 和 binutils,但没有新的链接器和汇编器。
- 我尝试使用 --with-ld=yes 和 --with-gold=no 选项编译 binutils和gcc,它们似乎没有做任何事情。
- 我使用 gcc v4.2.1 构建了 gmp v5.0.4、mpfr v3.1.0 和 mpc v0.9,并将它们安装在与 gcc 和 binutils 配置中使用的相同前缀中。
- 对于每个配置,我都明确说明了 gmp、mpfr 和 mpc 的位置。
- 我与 gcc 分开构建了 gmp、mpfr 和 mpc(这样做会导致一些构建错误)。
- gcc、binutils、gmp、mpfr 和 mpc 都构建在一个单独的目录中,该目录不是源目录的子目录(按照 gcc 安装说明的建议)。
-
我正在使用以下选项编译 gcc:
../gcc-4.6.3/configure --prefix=$PREFIX --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX - -enable-checking=release --program-suffix=-4.6.3 --enable-ld=yes --enable-gold=no - 我主要遵循本教程。
- 因为我的计算机上没有其他编译器,所以我被迫使用我在这里读到的 mac os x 默认 llvm 编译器(我之前描述为 gcc 4.2.1)不起作用,但是我没有 gcc-4.2在我的电脑上。
- 使用我刚刚编译的新版本 gcc (gcc-4.6.3) 编译 gcc-4.7.0(最近的快照)会导致编译器错误(我设置了环境变量 CC 和 CXX)。
- 我尝试先编译 gcc,而不是 binutils,反之,最终我决定用 binutils 构建 gcc 是可行的方法。您上面的输出是同时编译的
- 我阅读了关于黄金的这篇小文章,并尝试添加--enable-gold和--enable-ld。他们什么都没改变
-
我做事的顺序:
- 编译 gmp。
- 安装它。
- 编译mpfr。
- 安装它。
- 编译mpc。
- 安装它。
- 为 ld、gas、binutils、opcodes、gprof、bfd 建立到 gcc src 主目录的符号链接。
- 配置 gcc。
- 找到那个“状态报告”。
- 考虑另一种可能构建 ld 和 as 的方法。
- 失败了。
- 继续堆栈溢出。
正如“fazo”所说,我并没有真正告诉任何人我是如何编译 binutils 的......所以在这里......
我尝试首先编译 gcc,而不是使用 gcc 构建 binutils,编译得很好,但没有 ld、as 甚至是 gold。然后我尝试使用 llvm 编译器构建 binutils 然后 gcc。它也工作得很好,但仍然没有 ld、as 或 gold。最后,我在这里读到我可以对 binutils 中的某些项目进行符号链接,而 gcc 会检测并构建它们……我做到了。并且 gcc 找到了其中的大部分(如前所述,我将符号链接放在 gcc 目录中的 ld、操作码、bfd、gas、gprof 和 binutils)我这里的实际问题是告诉配置脚本编译一个新的汇编器和链接器。此外,让我感到困惑的是,在 binutils README 文件夹中,它说仅 ./configure make make install 将构建和安装所有工具,我试图弄清楚为什么不是这种情况。
最后的命令是:../binutils-2.22/configure --prefix=$PREFIX --with-gmp=$PREFIX --with-mpfr=$PREFIX --with-mpc=$PREFIX --program-后缀=-4.6.3 --enable-ld --with-gnu-as --with-gnu-ld
但我仍然没有 ld 也没有汽油。
任何帮助是极大的赞赏!(如果你想要一些我没有提供的信息,请问)
谢谢... :)