編譯環境的搭建主要分爲兩個大步驟,在此做以記錄
1.基礎環境的準備
磁盤:需要6GB 以上(爲以後可能會有新版本留了空間)
Linux系統:Ubuntu6.06以上
2.工具的準備
Java環境:JDK1.5以上(最好不要使用1.7,編譯時會有很多潛在問題)
命令:sudo apt-get install sun-java6-jdk
如提示找不到軟件,可以如下方式添加源再試
$ sudo add-apt-repository "deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
GIT:GIT1.5.4以上。如果有現成源碼,並且不想通過GIT對源碼做以更新,則可以忽略此步
開發包:flex,bison,gperf,libsdldev,libesddev,libwxgtk2.6-dev,build-essential,zip,cuil,valgrind
命令:sudo apt-get install gnupg valgrind flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev
常見問題:
1.注意如果是安裝的11.04以後的版本,GCC的版本Ubuntu默認會比較高,編譯會出現
rameworks/base/libs/utils/RefBase.cpp: 在成員函數‘void android::RefBase::weakref_type::trackMe(bool, bool)’中:
frameworks/base/libs/utils/RefBase.cpp:483:67: 錯誤: 將‘const android::RefBase::weakref_impl’作爲‘void android::RefBase::weakref_impl::trackMe(bool, bool)’的‘this’實參時丟棄了類型限定 [-fpermissive]
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] 錯誤 1
解決方法:更換gcc、g++版本爲4.4
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
sudo rm -rf /usr/bin/gcc /usr/bin/g++
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++