天天看點

How to compile Android 2.3 on Ubuntu 10.04 32bit

轉載自:http://blog.csdn.net/zhenyongyuan123/article/details/6079717 (感謝原作者)

這篇文章解決了在編譯中出現 version `GLIBC_2.11' not found (required by prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc) 的問題。(再一次感謝原作者)

官方編譯環境:

Ubuntu 10.04 64bit

64-bit Sun JDK

本文編譯環境:

Ubuntu 10.04 32bit

32-bit Sun JDK

2010-12-16 12:28 8709人閱讀 評論(3) 收藏 舉報

參考:

http://source.android.com/source/download.html

安裝java1.6

met issues

1:issue "You are attempting to build on a 32-bit system"

How to fix:

$ vim build/core/main.mk

change

ifneq (64,$(findstring 64,$(build_arch)))

to

ifneq (i686,$(findstring i686,$(build_arch)))

$(warning ************************************************************)

$(warning You are attempting to build on a 32-bit system.)

$(warning Only 64-bit build environments are supported beyond froyo/2.2.)

$(warning ************************************************************)

$(error stop)

endif

external/clearsilver/cgi/Android.mk,

external/clearsilver/java-jni/Android.mk,

external/clearsilver/util/Android.mk,

external/clearsilver/cs/Android.mk

change

LOCAL_CFLAGS += -m64

LOCAL_LDFLAGS += -m64

to

LOCAL_CFLAGS += -m32

LOCAL_LDFLAGS += -m32

2:issue "host C: libclearsilver-jni <= external/clearsilver/java-jni/j_neo_util.c

In file included from /usr/include/features.h:378,

                 from /usr/include/string.h:26,

                 from external/clearsilver/java-jni/j_neo_util.c:1:

/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: 沒有那個檔案或目錄

make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libclearsilver-jni_intermediates/j_neo_util.o]錯誤"

How to fix:

sudo apt-get install lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6

3:issue:

host SharedLib: libneo_util (out/host/linux-x86/obj/lib/libneo_util.so)

/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.3.4/libstdc++.so when searching for -lstdc++

/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.3.4/libstdc++.a when searching for -lstdc++

/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.3.4/libstdc++.so when searching for -lstdc++

/usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.3.4/libstdc++.a when searching for -lstdc++

/usr/bin/ld: cannot find -lstdc++

collect2: ld returned 1 exit status

make: *** [out/host/linux-x86/obj/lib/libneo_util.so] Error 1

How to fix:

4

frameworks/base/core/java/android/app/ListActivity.java:319: inconvertible types

found : android.widget.AdapterView<capture of ?>

required: android.widget.ListView

onListItemClick((ListView)parent, v, position, id);

^

Note: Some input files use or override a deprecated API.

Note: Recompile with -Xlint:deprecation for details.

Note: Some input files use unchecked or unsafe operations.

Note: Recompile with -Xlint:unchecked for details.

How to fix:

其實JDK的版本低了,用了1.5.0_06的版本,用1.6就可以了

5 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