随笔-348  评论-598  文章-0  trackbacks-0

漫长的编译开始了,当然成功不会一蹴而就的,不出所料,错误出现了

ost C: adb <= system/core/adb/fdevent.c

 

host Executable: adb (out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb)

 

out/host/linux-x86/obj/STATIC_LIBRARIES/libzipfile_intermediates/libzipfile.a(centraldir.o): In function `memset':

 

/usr/include/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters

 

true

 

Install: out/host/linux-x86/bin/adb

 

host C++: atree <= build/tools/atree/atree.cpp

 

host C++: atree <= build/tools/atree/files.cpp

 

host C++: atree <= build/tools/atree/fs.cpp

 

host Executable: atree (out/host/linux-x86/obj/EXECUTABLES/atree_intermediates/atree)

 

true

 

Install: out/host/linux-x86/bin/atree

 

host C++: bb2sym <= development/emulator/qtools/bb2sym.cpp

 

host C++: bb2sym <= development/emulator/qtools/trace_reader.cpp

 

development/emulator/qtools/trace_reader.cpp: In function ‘char* ExtractDexPathFromMmap(const char*)’:

 

development/emulator/qtools/trace_reader.cpp:1012: error: invalid conversion from ‘const char*’ to ‘char*’

 

development/emulator/qtools/trace_reader.cpp:1015: error: invalid conversion from ‘const char*’ to ‘char*’

 

make: *** [out/host/linux-x86/obj/EXECUTABLES/bb2sym_intermediates/trace_reader.o] 错误 1

继续求教于,Google和百度吧,原来是gcc版本的问题

$gcc --version

 

gcc (Ubuntu 4.4.1-4ubuntu9) 4.4.1

 

Copyright (C) 2009 Free Software Foundation, Inc.

 

This is free software; see the source for copying conditions.  There is NO

 

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

 

研究了一下发现问题主要出在Ubuntu10.4预置了gcc的版本是4.4,该版本编译时对语法要求比较高,因此无法编译源代码,解决方法就是将gcc-4.4降级成gcc-4.3

 

具体操作:

sudo apt-get remove gcc-4.4(卸载gcc-4.4)

sudo apt-get remove g++-4.4( 卸载g++-4.4)

sudo apt-get install gcc-4.3(安装gcc-4.3)

sudo apt-get install g++-4.3(安装g++-4.3)

 

安装完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就可以正常编译~~



---------------------------------------------------------
专注移动开发

Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2011-01-22 13:19 TiGERTiAN 阅读(4114) 评论(0)  编辑  收藏 所属分类: AndroidLinux

只有注册用户登录后才能发表评论。


网站导航: