官方编译环境:
Ubuntu 10.04 64bit
64-bit Sun JDK
本文编译环境:
Ubuntu 9.04 32bit
32-bit Sun JDK
修改了如下几个地方:
1.安装了JDK1.6--------------(服务器系统已兼容JDK1.5,编译的froyo也正常)
(以下2,3,4都是需要修改android2.3源码中的相关文件)
2.参考《三星的android2.3_installation_guide文档》中的修改说明改成32位PC编译,
出现的BUG信息为:"You are attempting to build on a 32-bit system"
修改如下:
a. Modify /build/core/main.mk
-ifneq (64, $(findstring 64, $(build_arch)))
+ifneq(i686, $(findstring i686, $(build_arch)))
b. Modify 4 files
./external/clearsilver/cgi/Android.mk
./external/clearsilver/java-jni/Android.mk
./external/clearsilver/util/Android.mk
./external/clearsilver/cs/Android.mk
Disable 2 options(by adding comment sign "#")
# LOCAL_CFLAGS += -m64
# LOCAL_LDFLAGS += -m64
3.修改编译器:
出现的BUG信息为:“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)”
修改步骤如下:
$ cd prebuilt/linux-x86/toolchain/
$ mv arm-eabi-4.4.3 arm-eabi-4.4.3.old
$ ln -s arm-eabi-4.4.0 arm-eabi-4.4.3
4.解决编译opensles报错的BUG,
出现的BUG信息为:
out/target/product/generic/obj/lib/libOpenSLES.so: undefined reference to `typeinfo for android::SortedVectorImpl'
out/target/product/generic/obj/lib/libOpenSLES.so: undefined reference to `vtable for __cxxabiv1::__vmi_class_type_info'
修改如下:
在system/media/opensles/libopensles及其下Android.mk中将IAndroidEffect.c改名为IAndroidEffect.cpp (google提供的官方的android2.3也是这样修改的)
参考文献:
《SMDKV210_Android2.3_Installation_Guide v1.0.pdf》 -->三星提供的文档
《http://alpha-blog.wanglianghome.org/》
《http://source.android.com/source/download.html》
《http://www.cnddu.com/archives/tag/编译》