?
问题现象:
编译GingerBread的时候,执行build,报如下错误:
?
build/core/main.mk:76: ************************************************************
build/core/main.mk:77: You are attempting to build on a 32-bit system.
build/core/main.mk:78: Only 64-bit build environments are supported beyond froyo/2.2.
build/core/main.mk:79: ************************************************************
build/core/main.mk:80: *** stop. ?Stop.
?
问题原因: 因为我们装的ubuntu是32bit,而froyo之后版本只支持64bit系统,而且JDK的版本要为1.6
?
?
解决方法:
?
1、修改Android.mk配置文件
?
将以下位置的几个配置文件:
?
./external/clearsilver/cgi/Android.mk
?
./external/clearsilver/cs/Android.mk
?
./external/clearsilver/java-jni/Android.mk
?
./external/clearsilver/util/Android.mk
?
文件中的
?
LOCAL_CFLAGS += -m64
?
LOCAL_LDFLAGS += -m64
?
m64替换m32(或者注释掉,然后重写也可以)
?
LOCAL_CFLAGS += -m32
?
LOCAL_LDFLAGS += -m32
2、修改main.mk
?
再将./build/core/main.mk 中的
?
ifneq (64,$(findstring 64,$(build_arch)))
?
改为:
?
ifneq (i686,$(findstring i686,$(build_arch)))
?
3、arm-eabi-4.4.3 错误
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc -mthumb-interwork -Ibionic/libc/private -o out/target/product/generic/obj/lib/crtbegin_dynamic.o -c bionic/libc/arch-arm/bionic/crtbegin_dynamic.S
?
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
?
这是在32位Ubuntu上编译引起的arm-eabi-4.4.3版本问题,所以需要修改arm-eabi-4.4.0:
?
$ mv arm-eabi-4.4.3 to arm-eabi-4.4.3.old
?
$ ln -s arm-eabi-4.4.0 arm-eabi-4.4.3