位置: 编程技术 - 正文

Ubuntu14.04 Android 源码编译

编辑:rootadmin
一、安装设置 gcc、g&#;&#; 版本Ubuntu 系统使用的 gcc、g&#;&#; 版本随着发布版本的不同而不同,在编译 Android 系统时不同的版本应该用相应版本的 gcc、g&#;&#; 去编译。因为每次 gcc、g&#;&#; 的版本升级,其语法规则都可能发生一些改变,所以在用高版本的 gcc、g&#;&#; 编译低版本的 Android 系统时,会有语法不兼容的现象,从而导致编译无法进行(会出现很多改不完的错误)。我的系统是 Ubuntu .。

推荐整理分享Ubuntu14.04 Android 源码编译,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

我们可以通过 gcc -v 命令查看一下 Ubuntu 默认安装的 gcc 版本,执行命令 gcc -v 查看 gcc 版本。打印结果如下

gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~.)

默认情况下,Ubuntu 是不会自动安装低版本的 gcc、g&#;&#; 版本的,如果我们想使用 gcc4.4 怎么办?首先看看有没有安装 gcc4.4,执行命令 ls /usr/bin/gcc*

结果只有 /usr/bin/gcc /usr/bin/gcc-4.8 两个,没有 gcc-4.4,所以要先给它安装上去,执行安装命令

sudo apt-get install gcc-4.4

再查看一下系统已安装的 g&#;&#; 版本,执行命令 ls /usr/bin/g&#;&#;*,结果发现只有 /usr/bin/g&#;&#; /usr/bin/g&#;&#;-4.8 两个,要先安装它,执行安装命令

sudo apt-get install g&#;&#;-4.4

安装好后执行下面的命令,修改各版本的优先级:

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8

(后面跟的数字 、 表示优先级,&#;越大优先级越高)

接着执行下面的命令,修改系统默认使用的 gcc 版本:

sudo update-alternatives --config gcc

会看到如下的信息:有两个候选项可用

Selection Path Priority Status------------------------------------------------------------ 0 /usr/bin/gcc-4.4 auto mode 1 /usr/bin/gcc-4.4 manual mode

* 2 /usr/bin/gcc-4.8 manual mode

Ubuntu14.04 Android 源码编译

要维持当前&#;[*]请按回车键,或者键入选择的编号,要想用哪个版本的 gcc 就输入它对应的编号(输入 1 切换到 gcc-4.4 版本)。

类&#;的,设置一下默认的 g&#;&#; 版本

sudo update-alternatives --install /usr/bin/g&#;&#; g&#;&#; /usr/bin/g&#;&#;-4.4

sudo update-alternatives --install /usr/bin/g&#;&#; g&#;&#; /usr/bin/g&#;&#;-4.8

接着执行命令 sudo update-alternatives --config g&#;&#;,打印结果如下

Selection Path Priority Status------------------------------------------------------------ 0 /usr/bin/g&#;&#;-4.4 auto mode 1 /usr/bin/g&#;&#;-4.4 manual mode

* 2 /usr/bin/g&#;&#;-4.8 manual mode

然后输入 1 切换到 g&#;&#;-4.4 版本。

如果想删除可选项的话可以执行如下指令:

sudo update-alternatives --remove gcc /usr/bin/gcc-4.5

重新设置完成后,可以执行 gcc -v 命令来看一下版本是否改变了。

二、安装设置 Java Jdk

(所有版本的 Jdk 官方下载地址 Ubuntu 上安装了多个版本的 Java Jdk,所以还要修改一个默认的 Jdk 版本,Android 2.3 需要的 Jdk 版本是 1.6。先执行一下 java -version 命令,查看一下当前系统默认使用的版本,发现当前系统使用的版本是 Jdk 1.7 的,如下

lion@lo:~/storm/android-dev/android2.3/android-2.3.7_r1$ java -versionjava version "1.7.0_"Java(TM) SE Runtime Environment (build 1.7.0_-b)Java HotSpot(TM) -Bit Server VM (build .-b, mixed mode)为了切换到 Jdk 1.6,我们修改一下系统配置文件,执行 sudo gedit /etc/profile,打开系统配置文件。把之前的 JAVA_HOME 注释掉,再给新的 JAVA_HOME 赋&#;为 Jdk 1.6 的安装路径,如下:#export JAVA_HOME=/home/lion/storm/jdk1.7/jdk1.7.0_export JAVA_HOME=/home/lion/storm/jdk1.6/jdk1.6.0_export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$ANDROID_NDK:$PATHexport CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib保存退出,然后执行命令 source /etc/profile 重新加载环境变量。然后再次执行 java -version,这回就切换到 Jdk 1.6 了,打印如下lion@lo:/etc/alternatives$ java -versionjava version "1.6.0_"Java(TM) SE Runtime Environment (build 1.6.0_-b)Java HotSpot(TM) -Bit Server VM (build .-b, mixed mode)

三、 进入 Android 源码根目录,执行 make 命令进行编译

编译过程中可能会出现一些错误,通常是缺少必要的依赖库,直接安装它们就行了,如1. fatal error: X/Xlib.h: No such file or directory(因为缺少必要的库)解决方法:$sudo apt-get install libx-dev2. /usr/bin/ld: cannot find -lreadline

解决方法 : sudo apt-get install libreadline6-dev libreadline6-dev

在配置正确的情况下,错误是非常少的,如果你编译的过程中频频出错,那肯定是配置有问题。编译完成后会出现以下提示,说明编译成功Generated: (out/target/product/generic/android-info.txt)Target system fs image: out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.imgInstall system fs image: out/target/product/generic/system.imgTarget ram disk: out/target/product/generic/ramdisk.imgTarget userdata fs image: out/target/product/generic/userdata.imgInstalled file list: out/target/product/generic/installed-files.txt我们还需要设置一下环境变量,才能运行模拟器,执行命令 gedit ~/.bashrc,在打开的文件末尾添加export ANDROID_PRODUCT_OUT=/home/lion/storm/android-dev/android2.3/android-2.3.7_r1/out/target/product/genericANDROID_PRODUCT_OUT_BIN=/home/lion/storm/android-dev/android2.3/android-2.3.7_r1/out/host/linux-x/binexport PATH=$PATH:$ANDROID_PRODUCT_OUT_BIN:$ANDROID_ PRODUCT_OUT; 保存退出,执行 source ~/.bashrc 使修改立即生效,然后就可以到 ../out/target/product/generic 目录执行命令启动模拟器了,启动命令如下emulator -system system.img -data userdata.img -ramdisk ramdisk.img(后边的 *.img 是启动模拟器需要的依赖文件),然后就可以看到模拟器启动起来了。

Ubuntu . 下载CyanogenMod cm-.0源码 Ubuntu.下载CyanogenModcm-.0源码系统Ubuntu.bit1.安装repo工具sudoapt-getinstallphablet-toolsgit-core2.创建目录mkdir~/DroidSourcecd~/DroidSource3.初始化仓库repoinit-

关于 ViewGroup 下 onDraw 方法失效 关于ViewGroup下onDraw方法失效默认情况下,为了效率,onDraw()方法不会在ViewGroup类中被调用。相应的你可以覆盖dispatchDraw()方法以代替。另外一种选择,你

Jar mismatch! Fix your dependencies 在开发Android项目的时候,有时需要引用多个项目作为library。在引用项目的时候,有时会出现Jarmismatch!Fixyourdependencies错误。这是因为两个项目的jar包(an

标签: Ubuntu14.04 Android 源码编译

本文链接地址:https://www.jiuchutong.com/biancheng/382176.html 转载请保留说明!

上一篇:cocos2d-x v3.3开发环境配置(cocos2dx4.0入门)

下一篇:Ubuntu 14.04 下载CyanogenMod cm-12.0源码(ubuntu如何下载)

  • 小规模纳税人月收入多少免征增值税
  • 个人所得税手续费返还增值税税率
  • 印花税包括几个税种
  • 结转本年利润要扣除企业所得税吗
  • 预缴增值税附加税费申报明细表
  • 防伪开票系统技术维护费怎么做分录
  • 工资以现金形式发放的情况说明
  • 做了进项税转出后要结转么
  • 展位费怎么入账
  • 税务筹划的12种方法知乎
  • 销售使用固定资产账务怎么处理
  • 销项负数发票会计摘要
  • 月饼税收分类属于哪一类食品
  • 销售,购买
  • 商业承兑汇票到期日付款人账户不足付款时
  • 广告业发生错账怎么办
  • 个人如何申报初级医师职称
  • 个体工商户减免房租政策2022年
  • 事业单位的账务
  • 原材料到半成品分录
  • 电脑维修中常用的软件
  • 固定资产的财务处理方法
  • ixapplet.exe - ixapplet是什么进程 有何作用
  • 来料加工方式中,料件和加工后成品的所有权
  • 成本法转为权益法属于会计政策变更吗
  • 安全模式是个啥
  • webssh github
  • 购买农产品没有发票入帐怎么办
  • thinkphp框架怎么用
  • 暂估原材料的数量怎么算
  • 作废发票需要拿回执单吗
  • 外出培训餐费要进差旅费吗
  • 暂估入库的商品含税吗
  • struts2漏洞检测工具下载
  • 鲁棒性分析方法
  • 部署fabric
  • zendframework3中文手册
  • 公允价值变动损益怎么算出来的
  • 不良品扣款应入哪个科目
  • 客运公司做账怎么做
  • 织梦怎么样
  • 高铁票该怎么申领
  • sql跨服务器查询语句
  • 公对私转账交税
  • 定期定额个体工商户怎么报税
  • 先预付货款,货到了怎么做账
  • 购入固定资产如何交所得税
  • 空调维修保养方案
  • 记账金额怎么写
  • 附加税的印花税怎么计算
  • 商贸企业增值税税负率低于1%则存在涉税问题
  • 未开票收入转为开票收入
  • 企业处置固定资产增值税税率
  • 发生了销售交易但没有在销售日记
  • 销售免税货物的会计分录
  • 多张不同固定资产卡片可汇总生成一张固定资产凭证
  • 银行存款日记账对方科目两个怎么办
  • sql自定义变量
  • mysql存储过程中调用存储过程
  • bat windows
  • win7系统宽带连接
  • mac怎么安装ios
  • window10 左下角
  • win10访问局域网电脑需要用户名和密码
  • linuxsleep函数
  • win8如何设置vpn Win8如何建立VPN连接操作指南
  • win7系统防火墙无法关闭
  • win10局域网无法上网
  • opengl画点
  • Cocos2dx3.2 Crazy Tetris 游戏输入(键盘事件,重力事件,触摸屏事件)
  • perl中的use strict
  • jquery轮播代码
  • 用python分析csv文件
  • NGUI之UITab Bar的不能将Sprite与SelectedSprite设置成相同的精灵
  • jquery删除一个标签
  • jquery中的children
  • 福建税务总局电话
  • 关于研发费用的审计程序,下列说法中错误的是
  • 重庆国税局官网登录入口查询
  • 从印度往中国邮寄药品
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设