当前位置: 代码迷 >> Android >> ubuntu 32bit停编译android
  详细解决方案

ubuntu 32bit停编译android

热度:38   发布时间:2016-05-01 18:56:40.0
ubuntu 32bit下编译android

?

问题现象:

编译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