花了一天半时间,顺利编译Android 2.3源代码,从零开始构建开发环境到编译成功。
之前用Ubuntu 9.10编译,总是出错:
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11' not found (required by prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc)
make: *** [out/target/product/generic/obj/lib/crtbegin_dynamic.o] 错误1
后来在android-building group里搜到原因:
The only Java toolchain Google has tested Gingerbread with is the 64-bit Sun JDK (on Ubuntu 10.04 if you want to get as close to our environments as possible). Using another toolchain might result in unexpected results, i.e. you're on your own.
Thanks, JBQ
Jean-Baptiste M. "JBQ" Queru
Software Engineer, Android Open-Source Project, Google.
貌似2.3目前只能在64位系统上编译(toolchain依赖64位的gcc和jdk),然后下载ubuntu 10.04和jdk x64在VMWare下搭环境,文件名分别是ubuntu-10.04.1-desktop-amd64.iso和jdk-6u23-linux-x64.bin。安装过程略。
下载基本lib的方法与1.5~2.2的相同:
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev java-common unixodbc
下载source的方法不再重复,请Google之。Gingerbread总共有2.6G,请耐心等候。
设置JDK路径后make -j3,顺利编译,没有任何报错。上图:
接下来的emulator ROM测试、编译SDK/ADT/NDK、搭建Framework开发环境和native app的开发,请Google之,很容易找到。