`

Android 编译环境配置搭建(Ubuntu 12.04)及环境导致编译错误QA

 
阅读更多

1、编译环境准备

下载android代码需要大约需要8.5G,单独编译一套代码需要30G左右,多套的话硬盘空间至少需要100G以上。

2. 配置android在Linux下的编译环境

 安装编译所需的软件包: 

 $ sudo apt-get install git-core gnupg flex bison gperf build-essential   zip curl libc6-dev libncurses5-dev x11proto-core-dev    libx11-dev libreadline6-dev libgl1-mesa-glx  libgl1-mesa-dev g++-multilib mingw32 tofrodos    python-markdown libxml2-utils xsltproc zlib1g-dev lib32readline6-dev gcc-4.4 g++-4.4 g++-4.4-multilib gcc-4.4-multilib
2	$ sudoln-s /usr/lib/i386-linux-gnu/libX11.so.1 /usr/lib/i386-linux-gnu/libX1

$cd /usr/bin/

$sudomv gcc gcc.bak

$sudo ln -s gcc-4.4 gcc

$sudomvg++ g++.bak

$sudo ln -s g++-4.4 g++

 

Python2.6-2.7,download from http://www.python.org/download/ (Ubuntu12.04一般自带)。

3.安装JDK
在Ubuntu下安装JDK比较简单,可以在软件中心直接搜索安装,也可以按以下方法安装:

安装Java 6(android2.3或更新的版本4.0以上等)

$ sudo add-apt-repository"deb http://archive.canonical.com/ lucid partner" 
$ sudo apt
-get update 
$ sudo apt
-get install sun-java6-
jdk 

安装Java 5(amdroid2.3之前Froyo版本和更老的版本)

$ sudo add-apt-repository"deb http://archive.ubuntu.com/ubuntu hardy main multiverse" 
$ sudo add
-apt-repository"deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse" 
$ sudo apt
-get update 
$ sudo apt
-get install sun-java5-jdk 

4、配置ccache


 

你可以选择是否搭建使用ccache编译器缓存设置。Ccache充当一个编译器缓存,可以用来加速再次编译。这招很管用,如果你经常需要清理环境或如果你频繁切换不同的构建产品来多次编译,这样设置后使之重复编译的时间缩短。

$vi ~/.bashrc

export USE_CCACHE=1 //系统默认存放在~/.ccache
export CCACHE_DIR=<path-to-your-cache-directory> //建议设置大小为50-100GB
$ source ~/.bashrc
在你下载完代码后,执行下面的命令
prebuilts/misc/linux-x86/ccache/ccache -M 50G 

如果编译的版本为android4.0即Ice Cream Sandwich (4.0.x),执行下面的命令

prebuilt/linux-x86/ccache/ccache-M50G 


配置好后,这些设置会一直保留

5.Android 编译报错(环境问题)QA:

Question:

"mkimage" command not found - U-Boot images will not be built
make[3]: *** [arch/arm/boot/uImage] Error 1
make[2]: *** [uImage] Error 2
make[1]: *** [sub-make] Error 2
Answer:
sudo apt-get install uboot-mkimage
Question:
g++: g++: selected multilib '32' not installed
selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] Error 1
make: *** Waiting for unfinished jobs....
make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] Error 1
Answer:
sudo apt-get install g++-4.4-multilib gcc-4.4-multilib

 
Question:
/usr/bin/ld: cannot find -lreadline

make: *** [out/host/linux-x86/obj/EXECUTABLES/sqlite3_intermediates/sqlite3] Error 1

make: *** Waiting for unfinished jobs....

Answer:

sudo apt-get install libreadline6-dev lib32readline6-dev

 

Question:

/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1

Answer:

  sudo apt-get install libc6-dev-i386

Question:

make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] error 1

Answer:

  sudo apt-get install g++-multilib

Question:

external/clearsilver/cgi/cgi.c:22: fatal error: zlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error 1

Answer:

sudo apt-get install zlib1g-dev

Question:
/usr/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1

Answer:

sudo apt-get install lib32z1-dev

Question:
bison -d  -o out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y
/bin/bash: bison: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] Error 127

Answer:

sudo apt-get install bison

Question:
Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
/bin/bash: flex: command not found
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp] Error 127

Answer:

sudo apt-get install flex

Question:
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1

Answer:

sudo apt-get install lib32ncurses5-dev

Question:
prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55: fatal error: X11/Xlib.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/main-common.o] Error 1

Answer:

sudo apt-get install libx11-dev

Question:
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'

Answer:
sudo apt-get install gperf


6.android 官方资料:

http://source.android.com/source/initializing.html#installing-required-packages-ubuntu-1204

分享到:
评论
1 楼 doloveme 2014-05-04  
repo sync出现“fatal: '../platform/abi/cpp.git' does not appear to be a git repository”的解决方案

-------------------------------------------
在我下载Android源代码时,在最后一步调用repo sync,出现“fatal: '../platform/abi/cpp.git' does not appear to be a git repository”,后来在网上查了资料,参考http://zxquiet.iteye.com/blog/1470991和http://bbs.csdn.net/topics/380254094。


1、在存放android系统源代码的目录(也就是执行repo sync命令的目录)下,有个.repo的隐藏目录,用ls -a可以查看的到,进入该目录:cd .repo;


2、打开.repo目录下的manifest.xml文件(命令vim manifest.xml)并找到fetch属性,在我的文件中显示fetch="..",将fetch修改为fetch="git://Android.git.linaro.org/",保存并退出;


3、继续repo sync就可以下载了。

相关推荐

    ubuntu10.04及12.04编译android环境搭建

    ubuntu10.04及12.04编译android环境搭建.txt

    Ubuntu12.04 64bit下Android编译环境搭建

    本文档总结了如何在Ubuntu12.04 64bit下搭建Android编译环境

    Android_Build_Environment_on_Ubuntu_12.04_64-bit_Installation_SOP.pdf

    4. **安装步骤**:文档详细介绍了在Ubuntu 12.04 64位系统上安装Android编译环境的步骤,包括操作系统的要求、内存和磁盘空间要求、编译工具的安装、JDK(Java开发工具包)的安装、以及对软件源的配置等。...

    ubuntu12.04搭建android开发环境

    ### Ubuntu 12.04 搭建 Android 开发环境详细步骤 #### 一、安装 Ubuntu 12.04 Ubuntu 12.04 的安装相对简单,可以通过官方提供的下载链接获取 ISO 文件。这里提到的是在 Windows 7 系统上安装 Ubuntu 12.04 作为...

    opencv2.4.9 ubuntu12.04LTS i386下的编译包java

    总的来说,这个OpenCV 2.4.9的编译包为Ubuntu 12.04 LTS的i386用户提供了在Java环境中进行计算机视觉开发的完整解决方案,涵盖了从视频读取到复杂图像处理的各个方面。开发者可以借此构建各种视觉应用,例如人脸识别...

    ubuntu12.04下Java开发环境的搭建

    ubuntu12.04下Java开发环境的搭建

    libc6 for ubuntu12.04

    因此,对于那些需要稳定环境的用户,如服务器管理员,Ubuntu 12.04是一个理想的选择。尽管现在这个版本已经不再受到官方支持,但对于仍在使用它的系统,保持libc6等关键库的更新仍然至关重要,因为这些库的安全性和...

    基于ubuntu12.04LTS搭建Qt&QtE开发环境

    总结起来,搭建Ubuntu 12.04上的Qt和Qt-Embedded开发环境涉及到安装Qt Creator,配置和编译Qt库,以及将编译后的库路径添加到环境变量。整个过程可能需要较长时间,特别是编译过程,但完成后将为开发者提供一个完整...

    andrid ubuntu12.04和14.04的编译环境

    andrid ubuntu12.04和14.04的编译环境,目前在开发android底层和中夹层,一直都用的整个编译环境,需要的小伙伴可以看看

    ubuntu-12.04 嵌入式开发环境快速搭建

    在介绍如何快速搭建Ubuntu-12.04嵌入式...尽管本文档中可能存在一些OCR扫描导致的文字错误,但主要内容已经清晰地呈现出来,对于希望入门Ubuntu Linux系统并快速搭建嵌入式开发环境的读者来说,这些信息是十分宝贵的。

    ubuntu12.04配置java开发环境

    ### Ubuntu 12.04 Java 开发环境配置详解 #### 一、前言 本文旨在为希望在 Ubuntu 12.04 系统上搭建 Java 开发环境的新手提供一份详细的指南。通过本教程,您将学习如何安装 JDK(Java Development Kit)、配置环境...

    Android手机上安装并运行Ubuntu12.04.pdf

    "Android手机上安装并运行Ubuntu12.04.pdf" 本文档主要讲述了如何在 Android 手机上安装并运行 Ubuntu 12.04 操作系统。作者 dawndiy 在 2013 年 5 月 8 日发布了这篇文章,旨在指导用户如何在 Android 手机上安装 ...

    Ubuntu12.04下编译成功的APUE附带源码

    总的来说,利用Ubuntu 12.04编译APUE源码,不仅可以检验你的系统配置和编程环境,还能提供一个动手实践的机会,使你能够在实践中巩固和扩展对Linux系统编程的理解。同时,这也是一个了解软件编译过程和调试技巧的好...

    ubuntu12.04安装及配置过程详解

    ### Ubuntu 12.04 安装及配置过程详解 #### 一、准备工作 **1. 下载 Ubuntu 12.04 镜像文件** - **32位与64位的选择:** - 建议大多数用户选择32位版本,除非您的计算机硬件支持64位并且您需要利用更多的RAM资源...

    ubuntu12.04 samba配置文件

    配置ubuntu12.04 samba服务器的话,把必要的软件安装之后,还需要修改配置文件,可以先把系统的配置文件备份,这个拷贝过去替换系统的文件,把名字了。次配置文件本人一验证,可以使用,配置文件的最后12行是我自己...

    ubuntu12.04 vim 配置

    最全,最好用 自己试试啊ubuntu12.04 vim 配置

    ubuntu 12.04 使用手册1—4

    最后,手册可能会探讨一些进阶主题,如Ubuntu的社区支持、开发环境的搭建、以及如何参与到开源项目中去。这包括Git版本控制的使用、编程语言的安装和配置,以及如何提交bug报告和参与论坛讨论。 通过阅读这套...

    Ubuntu12.04 nginx python uwsgi Django安装步骤

    在本文中,我们将介绍如何在 Ubuntu 12.04 环境下安装 Nginx、Python、uWSGI 和 Django。这些技术栈组合是非常流行的 Web 应用程序开发环境。 一、安装 Nginx Nginx 是一个轻量级的反向代理服务器,可以用来处理 ...

    Windows系统下安装与配置Ubuntu 12.04 LTS虚拟机

    使用VirtualBox在Windows系统下安装与配置Ubuntu 12.04 LTS虚拟机

    ubuntu12.04 git服务器的搭建

    在ubuntu 12.04 上完成的git服务器搭建步骤。

Global site tag (gtag.js) - Google Analytics