Ubuntu 10.04 gcc g++ 4.4降级到4.3

文章标题 : Ubuntu10.04 gcc g++4.4降级4.3的问题

我依照以下方法,却得到ln: creating hard link `gcc’ => `/usr/bin/gcc-4.3′: Invalid cross-device link 请问是什么回事呢?

将gcc-4.4降级成gcc-4.3 具体操作: sudo apt-get install gcc-4.3(安装gcc-4.3) sudo apt-get install g++-4.3(安装g++-4.3)sudo apt-get install g++-4.3-multilib (安装g++-4.3-multilib) 安装完4.3版本后,执行gcc –version后会发现版本仍然是4.4,因为gcc已经和4.4版本进行了链接,因此需要对gcc重新进行链接 具体操作: sudo ln -f /usr/bin/gcc-4.3 gcc sudo ln -f/usr/bin/g++-4.3 g++ 这样就可以用4.3版本的gcc和g++将原来的覆盖掉,重新进入Android源码目录执行make就可以正常编译【或者可以安转gcc依赖包 apt-get install build-essential】请大家帮帮忙

文章标题 : Re: Ubuntu10.04 gcc g++4.4降级4.3的问题

在我的系统上ls -l /usr/bin/gcclrwxrwxrwx 1 root root 7 2009-11-10 20:40 /usr/bin/gcc -> gcc-4.4意思是/usr/bin/gcc是/usr/bin/gcc-4.4的 soft link,不是hard link,目前我常用的都是soft link,用法是ln -s file1 file2,,然后ls -l file2查看。你的情况应该是cd /usr/binsudo ln -sf cpp-4.3 cppsudo ln -sf gcc-4.3 gccsudo ln -sf g++-4.3 g++hard link据说不支持在不同分区之间连接文件(你的/home和/在不同分区?),soft link支持。你的命令sudo ln -f /usr/bin/gcc-4.3 gcc似乎是把/usr/bin/gcc做个hard link到当前目录下的文件gcc。另外系统默认版本的gcc最好不要改,要改也得是同一版本,比如gcc 4.3.0改为gcc 4.3.2或gcc 4.4.0到gcc 4.4.4。从gcc 4.4改到gcc 4.3是有风险的。有个办法使用非系统默认版本的gcc,就是自己编译gcc并安装到/opt/gcc目录下去,不用多少时间,15分钟就够了(Intel E2140,1GB RAM)。如果你熟悉gcc的编译,这段不用看。编译前把gcc-4.3的包全部卸掉,并把gcc,cpp,g++这几个提供soft link到gcc-4.4的包重新装一遍。安装编译gcc的依赖包gmp,mpfr,cloog-ppl,mpc,libelf,注意都要带devel或dev字样的包。到下载源码gcc- core*.tar.bz2是c编译器gcc-fortran*.tar.bz2是fortran编译器gcc- g++*.tar.bz2是g++编译器gcc-objc*.tar.bz2是objective c编译器一般人用到的就c,c++ 而已mkdir ~/build下载到home下的build目录

++-4.3.4.tar.bz2

cd ~/buildtar jxf gcc-core-4.3.4.tar.bz2tar jxf gcc-g++-4.3.4.tar.bz2cd gcc-4.3.4mkdir build然后gcc -v 2> build-config.txt打开build-config.txt开 始修改比如我的是

代码:Using built-in specs.Target: i586-SUSE-linuxConfigured with: ../configure –prefix=/usr –infodir=/usr/share/info –mandir=/usr/share/man –libdir=/usr/lib –libexecdir=/usr/lib –enable-languages=c,c++,objc,fortran,obj-c++ –enable-checking=release –with-gxx-include-dir=/usr/include/c++/4.4 –enable-ssp –disable-libssp –with-bugurl=http://bugs.opensuse.org/ –with-pkgversion=’SUSE Linux’ –disable-libgcj –disable-libmudflap –with-slibdir=/lib –with-system-zlib –enable-__cxa_atexit –enable-libstdcxx-allocator=new –disable-libstdcxx-pch –enable-version-specific-runtime-libs –program-suffix=-4.4 –enable-linux-futex –without-system-libunwind –with-arch-32=i586 –with-tune=generic –build=i586-suse-linuxThread model: posixgcc version 4.4.4 (SUSE Linux)

改成

代 码:../configure \–prefix=/opt/gcc \–enable-languages=c,c++ \–enable-checking=release \–enable-ssp \–disable-libssp \–with-bugurl=http://bugs.opensuse.org/ \–with-pkgversion=’SUSE Linux’ \–disable-libgcj –disable-libmudflap \–with-system-zlib \–enable-__cxa_atexit \–enable-libstdcxx-allocator=new \–disable-libstdcxx-pch \–enable-version-specific-runtime-libs \–program-suffix=-4.4 \–enable-linux-futex \–without-system-libunwind \–with-arch-32=i586 \–with-tune=generic \–build=i586-suse-linux \–disable-bootstrap

也就是把头尾不要,提到/usr和/lib目录的行全不要,–program-suffix那行也不要,分行,再加一行–disable-bootstrap。我的这段

代码:../configure…

仅 供参考,具体还是要你自己改你自己的build-config.txt现在已经在~/build/gcc-4.3.4/build目录了把 改好的build-config.txt的内容复制下来并运行,我的是

代码:../configure \–prefix=/opt/gcc \–enable-languages=c,c++ \–enable-checking=release \–enable-ssp \–disable-libssp \–with-bugurl=http://bugs.opensuse.org/ \–with-pkgversion=’SUSE Linux’ \–disable-libgcj –disable-libmudflap \–with-system-zlib \–enable-__cxa_atexit \–enable-libstdcxx-allocator=new \–disable-libstdcxx-pch \–enable-version-specific-runtime-libs \–enable-linux-futex \–without-system-libunwind \–with-arch-32=i586 \–with-tune=generic \–build=i586-suse-linux \–disable-bootstrap

然后make -jN,cpu有几个核N就填几最后sudo make install可选步骤cd /opt/gcc/libexec/gcc/*/*sudo strip -sv cc1*

最后写个脚本gcc43-env.sh放到~/bin目录,内容如下

代码:#!/bin/shexport PATH=/opt/gcc/bin:$PATH

你要使用gcc-4.3只用source gcc43-env.sh就行了。

木已成舟便要顺其自然

Ubuntu 10.04 gcc g++ 4.4降级到4.3

相关文章:

你感兴趣的文章:

标签云: