android在ubuntu桌面系统下编译可能的错误和解决方法

Ubuntu9.10默认安装的纯净系统,没装任何其他软件。

  1.下载源码android-2.1_r2,直接make

  2.出错及解决如下:

  (1)/bin/bash: bison: command not found

  解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install bison

  (2)make: *** No rule to make target `Please-install-JDK-5.0,-update-12-or-higher,-which-you-can-download-from-java.sun.com',

  needed by `out/target/common/docs/api-stubs-timestamp'. Stop.

  解决:安装JDK 5.0

  1):根据官方文档里所说,源代码的编译必须使用JDK5才能编译的了,所以这里我们使用jdk5

  2): 需要先更新源,在终端里执行 sudo vim /etc/apt/sources.list

  3): 在source.list里把以下2行拷贝到文档最后面:

  deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse

  deb http://us.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse

  保存退出。

  4): 执行 sudo apt-get update 更新源.

  5): 配置编译环境并下载JDK5:sudo apt-get install sun-java5-jdk

  (3)/bin/bash: g++: command not found

  make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/pseudolocalize.o] Error 127

  解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install build-essential

  (4)external/clearsilver/cgi/cgi.c:22:18: error: zlib.h: No such file or directory

  external/clearsilver/cgi/cgi.c: In function ‘cgi_compress’:

  external/clearsilver/cgi/cgi.c:885: error: ‘z_stream’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:885: error: (Each undeclared identifier is reported only once

  external/clearsilver/cgi/cgi.c:885: error: for each function it appears in.)

  external/clearsilver/cgi/cgi.c:885: error: expected ‘;’ before ‘stream’

  external/clearsilver/cgi/cgi.c:888: error: ‘stream’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:888: error: ‘Bytef’ undeclared (first use in 

this function)

  external/clearsilver/cgi/cgi.c:888: error: expected expression before ‘)’ token

  external/clearsilver/cgi/cgi.c:889: error: ‘uInt’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:889: error: expected ‘;’ before ‘str’

  external/clearsilver/cgi/cgi.c:890: error: expected expression before ‘)’ token

  external/clearsilver/cgi/cgi.c:892: error: ‘uLong’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:892: error: expected ‘)’ before ‘stream’

  external/clearsilver/cgi/cgi.c:895: error: ‘alloc_func’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:895: error: expected ‘;’ before numeric constant

  external/clearsilver/cgi/cgi.c:896: error: ‘free_func’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:896: error: expected ‘;’ before numeric constant

  external/clearsilver/cgi/cgi.c:897: error: ‘voidpf’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:897: error: expected ‘;’ before numeric constant

  external/clearsilver/cgi/cgi.c:900: error: ‘Z_DEFAULT_COMPRESSION’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:900: error: ‘Z_DEFLATED’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:900: error: ‘MAX_WBITS’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:900: error: ‘Z_DEFAULT_STRATEGY’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:901: error: ‘Z_OK’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:904: error: ‘Z_FINISH’ undeclared (first use in this function)

   external/clearsilver/cgi/cgi.c:905: error: ‘Z_STREAM_END’ undeclared (first use in this function) external/clearsilver/cgi/cgi.c: In function ‘cgi_output’:

  external/clearsilver/cgi/cgi.c:1200: error: ‘Z_NULL’ undeclared (first use in this function)

  external/clearsilver/cgi/cgi.c:1201: error: expected ‘)’ before ‘Bytef’

  external/clearsilver/cgi/cgi.c:1218: error: ‘Z_DEFLATED’ undeclared (first use in this function)

  make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error 1

  解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install zlib1g-dev

  (5)/bin/bash: flex: command not found

  make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127

  解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install flex

  (6)/usr/bin/ld: cannot find -lncurses

  collect2: ld returned 1 exit status

  make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1

  解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install libncurses-dev

  (7)prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55:22: error: X11/Xlib.h: No such file or directory

  prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:56:23: error: X11/Xatom.h: No such file or directory

  In file included from external/qemu/android/skin/window.c:19:

  prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:73: error: expected specifier-qualifier-list before ‘XEvent’

  prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:86: error: expected specifier-qualifier-list before ‘Display’

  make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/skin/window.o] Error 1

  解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install libx11-dev

  (8)sh: gperf: not found

  calling gperf failed: 32512 at ./makeprop.pl line 96.

  make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h] Error 25

  make: *** Deleting file `out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h'

  解决:a@ubuntu:~/work/android-2.1_r2$ sudo apt-get install gperf

   http://hi.baidu.com/maxgoto/blog/item/fa000f7bf01135f80ad187d8.html 最近下载 了Android 2.1源码,在Ubuntu 9.10上做了一次编译,由于系统为纯净系统,之前没有进行过任何Android的编译,所以需先安装一些必要软件。编译过程参考网上一些文章,做下笔记 如下,以供参考:

1. 下载或更新Android源码  至最新,截止到前天(04-09)好像是2.1-r2.

2. Android 要求的 jdk 1.5,而Ubuntu9.10的源里只有JDK1.6. 目前网上解决方法有两种:
    解决方法一:  安装JDK1.5
   1) 根据官方文档里所说,源代码的编译必须使用JDK5才能编译的了,所以这里我们使用jdk5
   2) 需要先更新源,在终端里执行 sudo vim /etc/apt/sources.list
   3) 在source.list里把以下2行拷贝到文档最后面:
        deb http://us.archive.ubuntu.com/ubuntu/   jaunty multiverse
        deb http://us.archive.ubuntu.com/ubuntu/   jaunty-updates multiverse
        保存退出。
   4) 执行 sudo apt-get update 更新源.
   5)配置编译环境并下载JDK5:sudo apt-get install sun-java5-jdk

   解决方法二:   安装JDK 1.6  , 修改Android源文件。
   1) 安装jdk 1.6,修改<src_top/build/core/make.mk>(如果2.0版本源码请修改<src_top/build/core/main.mk>)
    在文件中搜索并分别把:
        java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1.5[. "$$]')
        javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1.5[. "$$]')
    两行改成:
        java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1.6[. "$$]')
        javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1.6[. "$$]')
    即可。
   推荐使用第一种解决方法。

3. 安装编译过程中必需软件  。根据网上高人的经验,这是编译的最小工具软件集。
    $sudo apt-get install build-essential
    $sudo apt-get install zlib1g-dev
    $sudo apt-get install flex
    $sudo apt-get install libncurses-dev
    $sudo apt-get install libx11-dev
    $sudo apt-get install gperf

4. make  .经过漫长的编译过程,编译成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值