ubuntu11.10 64bit 编译android 4.0
前言:
据说google内部使用的的ubuntu版本始终是10.4,
而我一直使用的编译2.3Gingerbread的 11.04下补充安装uuid-dev和liblzo2-dev两个库就可以直接编译4.0了。
问题是我们公司编译服务器上安装的是11.10,其对应的gcc版本是 4.6.1,一个显著的变化是编译查错级别提高了。
为保持ubuntu的统一性,根据不修改gcc版本,修改相应出错代码的原则进行编译。
;=========0.安装JDK 6
android官网指定的源居然提示找不到jdk安装文件,提示E:Package 'sun-java6-jdk' has no installation candidate
解决:添加一个源:debhttp://us.archive.ubuntu.com/ubuntu/ hardy multiverse
方法:打开源列表: sudo vim/etc/apt/sources.list
在最后一行添加deb http://us.archive.ubuntu.com/ubuntu/ hardy multiverse
更新apt源: sudo apt-get update
安装sun-java6-jdk: sudo apt-get install sun-java6-jdk
下载完成后,在提示界面按tab键选择确认。(如果ssh shell窗口安装的,jdk安装图形界面看不到,直接tab键选择,回车键接受,就OK了)
;===========1.安装lib库
1.1 sudo apt-get install git-core gnupgflex bison gperf build-essential \
zip curl zlib1g-dev libc6-devlib32ncurses5-dev ia32-libs \
x11proto-core-dev libx11-dev lib32z-dev \
libgl1-mesa-dev g++-multilib mingw32tofrodos python-markdown \
libxml2-utils xsltproc -y
为保证安装成功,再次运行上述命令,检查是否有漏装的,可能与安装顺序的依赖关系有关。比如我再次运行时,如下提示:
The following extra packages will beinstalled:
libpthread-stubs0 libpthread-stubs0-dev libxau-dev libxcb1-devlibxdmcp-dev libxext-dev mesa-common-dev
The following packages will be REMOVED:
libpthread-stubs0:i386 libpthread-stubs0-dev:i386 libx11-dev:i386libxau-dev:i386 libxcb1-dev:i386 libxdmcp-dev:i386
The following NEW packages will beinstalled:
libgl1-mesa-dev libpthread-stubs0 libpthread-stubs0-dev libx11-devlibxau-dev libxcb1-dev libxdmcp-dev libxext-dev mesa-common-dev
lib32readline5-dev 这个找不到,建议安装 ---> lib32readline-gplv2-dev
sudo apt-get installlib32readline-gplv2-dev
sudo apt-get install uuid-dev #这个库也要安装。
;============2.报错/usr/bin/ld: cannot find -llzo2
#这个是缺lib库
sudo apt-get install liblzo2-dev:i386 #注意一定要带:i386,否则可能报 cannot find-llzo2
#不能使用普通版本liblzo2-dev,会报skipping incompatible然后仍然 /usr/bin/ld: cannot find -llzo2;
#如果已经安装了liblzo2-dev,再运行上面的命令会卸载一些gcc等,需要重新安装1.1里面的那一堆。
;=============3.报错:error: "_FORTIFY_SOURCE" redefined [-Werror]
host C++: obbtool <= frameworks/base/tools/obbtool/Main.cpp
<command-line>:0:0: error:"_FORTIFY_SOURCE" redefined [-Werror]
<built-in>:0:0: note: this is thelocation of the previous definition
解决方法:
修改源码目录下/build/core/combo/HOST_linux-x86.mk文件:
将以下语句
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
修改为
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE-D_FORTIFY_SOURCE=0
;===============4.报错:frameworks/compile/slang/slang_rs_export_foreach.cpp:247:23: error: variable ‘ParamName’ set but not used [-Werror=unused-but-set-variable]
解决方法: vimframeworks/compile/slang/Android.mk去掉-Werror
这类问题的一般通用解决方法:
遇到错误:cc1plus:warnings being treated as errors
主要原因是 Makefile或Android.mk里面 gcc的参数多了一个 "-Werror"
找到出错的模块下的make文件,看Make文件里面有没有“-Werror",如果有的话将其删除。重新编译即可。
;===============5.报错: mesa3d/src/glsl/linker.cpp:1394:49: error: expectedprimary-expression before
解决方法:
把"#include <stddef.h>"添加到 linker.cpp文件头部。
;=================6.报错:external/oprofile/libpp/format_output.h:94:22: error: reference ‘counts’ cannot be declared
解决方法:需要修改external/oprofile/libpp/format_output.h:94行
mutable counts_t & counts为
counts_t & counts
;=============7.报错 Mutex.cpp:143: undefined reference to `pthread_mutex_trylock' 和llvm/lib/Support/Unix/Signals.inc:219:undefined reference to `dladdr'
解决方法:
$viexternal/llvm/llvm-host-build.mk
LOCAL_LDLIBS := -lpthread -ldl
;=============8.报错 /gtest/internal/gtest-param-util.h:122:11: error: ‘ptrdiff_t’ does not name a type
解决方法:
$viexternal/gtest/src/../include/gtest/internal/gtest-param-util.h
#include <cstddef>
我的电脑修改了上面几处就编译成功了。
ubuntu11.10 64bit 编译android 4.0的更多相关文章
- 【转】ubuntu11.10 64bit 环境android编译错误
原文网址:http://blog.csdn.net/lmhgen/article/details/7326083 错误1: 注意:external/protobuf/java/src/main/jav ...
- [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6. ...
- fedora 18 源码编译 android 4.0.1
1.编译环境: 系统:fedora 18 KED 桌面 (Fedora-18-i686-Live-KDE.iso) 处理器:酷睿i5双核 内存: 4GB 硬盘:46GB java版本:java ve ...
- 【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码
http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android ...
- 在干净的ubuntu 14.10上编译Qemu2.2.0的过程
下载Qemu的源代码 从官网http://wiki.qemu.org/Main_Page 中下载最新的源代码,目前是2.2.0. 安装依赖库和编译 编译过程分两步1. ./configure 2. m ...
- Ubuntu 14.10 下编译Hadoop2.4.0
在http://www.aboutyun.com/thread-8130-1-1.html 这里看到到,安装过程遇到了上面说的问题,所以将此文转载过来,以备不时之需,感谢此作者. 问题导读: 1.如果 ...
- window 10 64bit 安装nodejs v7.0.5 + npm v4.1.2 + Express 4.x及搭建web开发环境
1.先安装nodejs.npm. 2.然后安装Express (4.0之后需要安装express-generator) npm install -g express npm install -g ex ...
- Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 \ libx11-dev:i386 ...
- 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...
随机推荐
- linux常用的搜索命令
搜索包含123内容的文件夹grep "123" ./ -r -n 按照名字查找find ./ -name “xxxx” find ./ -name "123.txt&qu ...
- 【转】【VS Code】配置文件Launch及快捷键
Ctrl+shift+p,然后输入launch,点击第一个选项即可配置. 之后选择More即可 具体配置可修改为: { "version": "0.2.0", ...
- (笔记)linux 进程和线程的区别
进程:进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程:线程是进程的一个执行流,是CPU ...
- LintCode #452 删除链表中的元素
方法很笨拙,被链表给绕住了,抽空在整理一下. /** * Definition for ListNode * public class ListNode { * int val; * ListNode ...
- CentOS 6.x安装配置MongoDB 3.4.x
说明: 操作系统:CentOS 5.X 64位 IP地址:192.168.21.128 实现目的: 安装配置MongoDB数据库 具体操作: 一.关闭SElinux.配置防火墙 1.vi /etc/s ...
- TCP三次握手建立关系
三次握手(three times handshake:three-way handshake)所谓的“三次握手”即对每次发送的数据量是怎样跟踪进行协商使数据段的 发送和接收同步,根据所接收到的数据量而 ...
- (个人)CentOS的JDK安装
一. 卸载JDK 1. 通过如下命令查看当前JDK的相关内容 rpm -qa | grep java 2. 如果出现如下内容 java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el ...
- Ubuntu14.04下安装Libsvm,并使用Libsvm
(1)Ubuntu14.04下安装Libsvm 转载:https://blog.csdn.net/katrinawj/article/details/78915874 一.下载: 网址:http:// ...
- 自定义控件?试试300行代码实现QQ侧滑菜单
Android自定义控件并没有什么捷径可走,需要不断得模仿练习才能出师.这其中进行模仿练习的demo的选择是至关重要的,最优选择莫过于官方的控件了,但是官方控件动辄就是几千行代码往往可能容易让人望而却 ...
- [Learn AF3]第五章 App Framework 3组件之Drawer——Side Menu
Drawer——Side menu 组件名称:Drawer 说明:af3中的side menu和af2中有很大变化,af3中的side menu实际上是通过插件$.afui.drawer来实现 ...