使用ubuntu12.04编译android4.0的时候,如果出现以下的问题:
host C++: obbtool <= frameworks/base/tools/obbtool/Main.cpp
:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
:0:0: note: this is the location of the previous definition
cc1plus: all warnings being treated as errors
make: *** [out/hostnux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1
make: *** Waiting for unfinished jobs....
这是由于系统的gcc的版本过高,要求使用较低版本的gcc来编译,执行:
/usr/bin# ls -l gcc*
/usr/bin# ls -l g++*
可以看到系统使用的gcc版本为gcc4.6,而我们要使用的版本是gcc4.4,按如下操作:
apt-get install gcc-4.4 g++-4.4
/usr/bin# mv gcc gcc.bak
/usr/bin# ln –s gcc-4.4 gcc
/usr/bin# mv g++ g++.bak
/usr/bin# ln -s g++-4.4 g++
再次查看系统的gcc版本:
/usr/bin# ls -l gcc*
/usr/bin# ls -l g++*
会发现gcc的版本已经换成gcc-4.4了。
再次编译的时候会出现如下错误:
g++ selected multilib '32' not installed
这是因为和gcc对应的multilib包不对,需要安装g++-4.4、gcc-4.4的multilib包,执行下面命令:
apt-get install g++-4.4-multilib
host C++: obbtool <= frameworks/base/tools/obbtool/Main.cpp
:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
:0:0: note: this is the location of the previous definition
cc1plus: all warnings being treated as errors
make: *** [out/hostnux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1
make: *** Waiting for unfinished jobs....
这是由于系统的gcc的版本过高,要求使用较低版本的gcc来编译,执行:
/usr/bin# ls -l gcc*
/usr/bin# ls -l g++*
可以看到系统使用的gcc版本为gcc4.6,而我们要使用的版本是gcc4.4,按如下操作:
apt-get install gcc-4.4 g++-4.4
/usr/bin# mv gcc gcc.bak
/usr/bin# ln –s gcc-4.4 gcc
/usr/bin# mv g++ g++.bak
/usr/bin# ln -s g++-4.4 g++
再次查看系统的gcc版本:
/usr/bin# ls -l gcc*
/usr/bin# ls -l g++*
会发现gcc的版本已经换成gcc-4.4了。
再次编译的时候会出现如下错误:
g++ selected multilib '32' not installed
这是因为和gcc对应的multilib包不对,需要安装g++-4.4、gcc-4.4的multilib包,执行下面命令:
apt-get install g++-4.4-multilib