我正在尝试建立一个完全近期且最新的gcc环境......基本上是gcc 4.6.3和binutils 2.22。不是Xcode 4.2.1附带的相当老的gcc 4.2.1(llvm)。我的问题不在于编译(至少目前为止)。我可以完美地同时编译binutils,gcc和两者。但是每次我尝试编译时,我都会在configure的输出
的末尾看到这样的内容检查在哪里找到目标ar ...刚刚编译完 检查在哪里找到目标...主机工具
检查在哪里找到目标cc ...刚编译了 检查在哪里找到目标c ++ ...刚刚编译了 检查在哪里找到libstdc ++的目标c ++ ...刚编译了 检查在哪里找到目标dlltool ...刚刚编译了 检查在哪里找到目标gcc ...刚刚编译了 检查在哪里找到目标gcj ...刚刚编译了 检查在哪里找到目标gfortran ...刚编译了 检查在哪里找到目标gccgo ...主机工具
检查在哪里找到目标ld ...主机工具
检查在哪里找到目标脂肪...主机工具
检查在哪里找到目标nm ...刚刚编译完 检查在哪里找到目标objdump ...刚刚编译了 检查在哪里找到目标ranlib ...刚刚编译完 检查在哪里找到目标条...刚刚编译完 检查目标风向的位置...刚刚编译完 检查在哪里找到目标windmc ...刚刚编译了
我为gcc源文件夹中的ld,opcodes,bfd,gas,gprof和binutils创建了符号链接以获取此输出...(如果这有帮助)
正如你所看到的,我可以得到一个"刚刚编译好的#34;大多数软件的版本,我只是无法弄清楚如何编译和ld。我已经阅读了ld文件夹中的README文件(在binutils包中)并且它说要执行:
make all-ld
我这样做,因为我已经"制造"来源,它告诉我没有什么可做的......
我现在唯一能想到的就是暂时修改我的路径,不包括ld。这很容易......
又是
的快速检查whereis ld
无论如何,在考虑到这一点之后立即重新认识它将是愚蠢的现在我没有任何东西可以链接gcc(甚至是新版本的ld(如果我完全可以工作))
所以,总之,我正在尝试编译ld的新副本并作为......
事实:
的
的
as" fazo"说,我并没有真正告诉任何人我如何编译binutils ...所以这里是...
我尝试首先编译gcc,而不是使用gcc构建binutils,编译好,但没有ld,as,甚至是gold。然后我尝试使用llvm编译器构建binutils然后gcc。它也工作得很好,但仍然没有ld,as或gold。最后,我读了here我可以对binutils中的某些项进行符号链接,gcc会检测并构建它们......我做到了。并且gcc找到了大部分内容(如前所述,我将符号链接放在gd目录中,用于ld,opcodes,bfd,gas,gprof和binutils)我的实际问题是告诉configure脚本编译一个新的汇编器和链接器。另外,令人难以置信的是,在binutils README文件夹中,它说仅仅./configure make make install将构建并安装所有工具,我试图弄清楚为什么不是这种情况。
最终的命令是: ../binutils-2.22/configure --prefix = $ PREFIX --with-gmp = $ PREFIX --with-mpfr = $ PREFIX --with-mpc = $ PREFIX --program-suffix = -4.6.3 - enable-ld --with-gnu-as --with-gnu-ld
但我仍然没有得到任何气体。
非常感谢任何帮助! (如果你想要一些我没有提供的信息,请问)
谢谢...... :)
答案 0 :(得分:3)
Afaik使用标准版本(configure; make),结果的命名方式不同。 gas-new和gld-new左右。
请注意,OS X通常不使用binutils,而是使用Apple自己的Mach-O链接器(cctools)。即使你成功了,也可能无法找到可行的解决方案
答案 1 :(得分:1)
我意识到,这基本上是一个mac问题。在安装并获得Ubuntu后,它构建了链接器和汇编器就好......编译gcc仍然有点麻烦,但这是因为Debian的新多架构支持...但这是另一个问题...感谢您的帮助Marco van de Voort
答案 2 :(得分:1)
Binutils在OS X上不支持汇编器或链接器,请参见binutils configure
脚本:
case "${target}" in
*-*-chorusos)
;;
aarch64-*-darwin*)
noconfigdirs="$noconfigdirs ld gas gdb gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
arm-*-darwin*)
noconfigdirs="$noconfigdirs ld gas gdb gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
powerpc-*-darwin*)
noconfigdirs="$noconfigdirs ld gas gdb gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
i[3456789]86-*-darwin*)
noconfigdirs="$noconfigdirs ld gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
x86_64-*-darwin[912]*)
noconfigdirs="$noconfigdirs ld gas gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
*-*-darwin*)
noconfigdirs="$noconfigdirs ld gas gdb gprof"
noconfigdirs="$noconfigdirs sim target-rda"
;;
对于任何darwin
(即OS X)目标,这会将ld
和gas
添加到noconfigdirs
列表中。这意味着在构建过程中将跳过这些目录。
要在OS X上构建GCC,您需要使用本机OS X汇编器和链接器(它们是App Store中“ Xcode命令行工具”软件包的一部分)。