为什么我不能构建一个较低版本的编译器
我目前正试图在最新更新的Ubuntu 11.10上构建一个gcc 4.4。但是,在试图引导时,构建编译器总会失败并出现一些问题。为什么我不能构建一个较低版本的编译器
第一个crti.o
和crtn.o
找不到。我将它们链接到搜索路径中的另一个目录中,因此我可以获得引导程序编译器。但是现在它失败的消息:
configure: error: C compiler cannot create executables
我尝试了用中间编译器上简单的测试程序,而我得到的消息:
$ ./host-x86_64-unknown-linux-gnu/prev-gcc/xgcc test.c
xgcc: error trying to exec 'cc1': execvp: File or directory not found
因此,一些严重搞砸与我的中间编译器的路径似乎。当我在Ubuntu 11.04上做同样的事情时,一切都很好。
我用下面的命令行配置:
./configure --prefix=/opt --program-suffix=44
我也试过既是VPATH构建,以及一个以源码编译,但两者有同样的问题。在更新之前,我仍然拥有gcc44,它位于/opt
之内,但它自更新以来已变得无法使用。
有没有简单的方法让gcc 4.4在Ubuntu 11.10下工作?我不必是一个自建编译器,如果我可以下载一个包并安装它,那也可以。
这是由于Ubuntu切换到多拱形造成的。基本上所有的“标准”路径都被改变了,所以你可以在同一台机器上安装多个体系结构的库而不会发生任何冲突。
当然,Ubuntu GCC已经修补以解决这个问题,但上一次编译器在上次检查时仍然没有修复。
在这里看到:https://askubuntu.com/questions/69365/cant-build-gcc-anymore-since-upgrade-to-11-10
它现在有效。我只是将相应的'crt * .o'符号链接到'/ lib'。这有点破解,因为我通常不喜欢手动链接系统目录中的东西,但现在看起来工作。我会看看链接,看看这个决议是否更适合。 – LiKao 2012-02-05 16:55:55
检查你configure.log - 它或许应该给你更多的诊断... – 2012-02-03 14:32:54
我没看那里......但感谢你的信息我在仔细又看了很多正确的config.log,我发现另一个'crt?.o'文件,在更新过程中似乎没有正确链接。现在它似乎起作用了(至少是一见钟情)。 – LiKao 2012-02-03 14:50:11
另一个猜测:你可能会缺少libc6-dev(安装它为'#apt-get install libc6-dev') – 2012-02-03 14:51:03