linux android 下源码编译问题总结(一)

对于各种包的安装和解压命令

tar格式
#tar -zxvf  *****.tar.gz(tar -xf  *****.tar)
#./configure
#make
#make install

rpm包

#rpm -ivh *****.rpm  (安装)
#rpm -Uvh *****rpm(升级,只对已经安装了rpm包的) :em11

 

安装包

sudo apt-get install xx (xx 为包名)

sudo gedit ~/.bashrc 常用的路径设置文件

source ~.bashrc 执行完上面的添加操作后 要用此命令更新

由于 ubuntu 集成时去掉了 sun 的 JDK 和源 集成了自己的 OpenJdk 

最好集成 sun 的JDK 不然有问题 找不到解决的方法

用命令 java -version 查看以下版本

要手动添加下载源

地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Java 6: for Gingerbread and newer

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
Java 5: for Froyo and older

$ 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

但是上面源也有问题

要手动下载 sun 的 JDK

如果要编译 2.3.以下的版本请安装 JDK5

2.3 或以上请安装JDK6

下载 rpm.bin 格式 64位文件(官方要求64位 不然会有问题)

sudo chmod a+x 文件

./x.rpm.bin 文件 进行安装

安装编译需要的 包
Installing required packages (Ubuntu 10.04 -- 11.10)
You will need a 64-bit version of Ubuntu. Ubuntu 10.04 is recommended. Building using a newer version of Ubuntu is currently only experimentally supported and is not guaranteed to work on branches other than master.

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
  x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
  libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown \
  libxml2-utils xsltproc
On Ubuntu 10.10:

$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
On Ubuntu 11.10:

$ sudo apt-get install libx11-dev:i386

我是在 

Ubuntu 10.04 安装成功
Installing required packages (Ubuntu 12.04)
Building on Ubuntu 12.04 is currently only experimentally supported and is not guaranteed to work on branches other than master.

$ sudo apt-get install git-core gnupg flex bison gperf build-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev:i386 \
  g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown \
  libxml2-utils xsltproc zlib1g-dev:i386

下尝试不成功 安装 JDK 有问题 且 在此版本下 机器抗不起了

如果在编译过程中出现问题 只要归结为两类 

一类是由于 少了参与编译的包

二是编译路径设置不正确

下载源码的过程请参考我的上篇文章

 

下载完成后

可以运行 . build/envsetup.sh 来包含 模块编译指令 可以对单个模块进行编译

在源码目录下 运行 make 会编译全部模块

注意: 此处不会编译 SDK 要编译SDK 需另外执行 make SDK

       也不会执行 编译 ADT 

注意,我们是先执行2),再执行3)。因为在执行./build_server.sh时,会把生成的SDK清除了。
用上了新的源码,adt这个调试工具也得自己来生成,步骤如下:
若下载的是cupcake源码需进入:out/host/linux-86/sdk/tools/eclipse/scripts目录,如果下载的是主线代码,需要进入:sdk/eclipse/scripts目录(才会有build_server.sh脚本命令),执行如下命令
./build_server.sh 你想放ADT的路径

 

检查 AVD

android list 会显示 所有的能用的虚拟机和SDK

./android 会运行 SDK Manager 

create -n mm -t 10 会生成 AVD 参数请查看 指令

export JAVA_HOME=/usr/local/bin/sun-jdk1.6.0_32 
export JRE_HOME=$JAVA_HOME/jre  
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin

export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}
export ANDROID_PRODUCT_OUT=~/bin/out/target/product/generic
export ANDROID_PRODUCT_OUT_BIN=~/bin/out/host/linux-x86/bin
export PATH=$PATH:/root/bin/out/host/linux-x86/sdk/android-sdk_eng.root_linux-x86
export ANDROID_SWT=~/bin/out/host/linux-x86/framework

export ECLIPSE_HOME=~/eclipse
export PATH=${PATH}:${ECLIPSE_HOME} 

此为在编译中用到相关路径的设置 自己的就按照本人的路径设置

 

欢迎各位同学加入 android 技术群 155595043
个人微博: http://weibo.com/338226333
有问题可以微博商讨

posted on 2012-05-17 17:10  梁DH  阅读(870)  评论(2编辑  收藏  举报

导航