现在的位置: 首页 > 综合 > 正文

换用gcc与g++的较低版本

2014年11月02日 ⁄ 综合 ⁄ 共 1324字 ⁄ 字号 评论关闭

3、换用gcc与g++的较低版本
 
Ubuntu11.10自带的gcc与g++版本为4.6,用该版本编译android时会遇到一些错误,如:
 
1 host Prebuilt monkeyrunner (outhostlinux-x86objEXECUTABLESmonkeyrunner_intermediatesmonkeyrunner)  
 
2 host C++ obbtool = frameworksbasetoolsobbtoolMain.cpp  
 
3 命令行00 错误: “_FORTIFY_SOURCE”重定义[-Werror]  
 
4 built-in00 附注: 这是先前定义的位置  
 
5 cc1plus:所有的警告都被当作是错误
 
网上有文章说修改buildcorecomboHOST_linux-x86.mk文件,将
 
1 HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
 
修改成
 
1 HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
 
这种方法虽然能解决该问题,但也会引出新的问题,还要继续不断的修改,很麻烦,而且也会破坏android源码的原生状态。但是如果使用4.4版本的gcc与g++,则不会出现这些错误,方法如下:

 
通过gcc -v命令可以发现gcc库在usrlibgcci686-linux-gnu目录下,该目录下有当前系统支持的各种版本gcc库 。在安装gcc 4.4前该目录下是没有4.4目录的,安装gcc 4.4后该目录下就会多出4.4这个目录,且该4.4目录下有各种相应库文件。

 
ubuntu 32bit系统下安装gcc 4.4的最好方法是仅用以下两条命令,不需要其它命令,否则编译时可能会出错。
 
1 $sudo apt-get install gcc-4.4  
 
2 $sudo apt-get install g++-4.4
 
装完后进入到usrbin目录下
 
1 $ls -l gcc
 
会显示以下结果
 
lrwxrwxrwx 1 root root 7 2011-10-29 0911 gcc - gcc-4.6
-rwxr-xr-x 1 root root 224544 2011-10-06 0547 gcc-4.4
-rwxr-xr-x 1 root root 302104 2011-09-17 0543 gcc-4.6
 
发现gcc链接到gcc-4.6, 需要将它改为链接到gcc-4.4,方法如下
 
1 $sudo mv gcc gcc.bak  
 
2 $sudo ln -s gcc-4.4 gcc
 
同理,对g++也做同样的修改:
 
1 $ls -l g++
 
lrwxrwxrwx 1 root root 7 2011-08-14 1517 g++ - g++-4.6
-rwxr-xr-x 1 root root 228640 2011-10-06 0545 g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-17 0539 g++-4.6
 
需要将g++链接改为g++-4.4
 
1 $sudo mv g++ g++.bak  
 
2 $sudo ln -s g++-4.4 g++
 
再查看gcc和g++版本号:
gcc -v
g++ -v
均显示gcc version 4.4.6 ,说明gcc 4.4安装成功。

抱歉!评论已关闭.