漫長的編譯開始了,當然成功不會一蹴而就的,不出所料,錯誤出現了
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就可以正常編譯~~
posted on 2011-01-22 13:19
TiGERTiAN 閱讀(4123)
評論(0) 編輯 收藏 所屬分類:
Android 、
Linux