前言:

据说google内部使用的的ubuntu版本始终是10.4,

而我一直使用的编译2.3Gingerbread的 11.04下补充安装uuid-devliblzo2-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的更多相关文章

  1. 【转】ubuntu11.10 64bit 环境android编译错误

    原文网址:http://blog.csdn.net/lmhgen/article/details/7326083 错误1: 注意:external/protobuf/java/src/main/jav ...

  2. [Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

    本文转载自:[Android 编译(一)] Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程 1 前言 经过3天奋战,终于在Ubuntu 16.04上把Android 6. ...

  3. fedora 18 源码编译 android 4.0.1

    1.编译环境: 系统:fedora 18 KED 桌面  (Fedora-18-i686-Live-KDE.iso) 处理器:酷睿i5双核 内存: 4GB 硬盘:46GB java版本:java ve ...

  4. 【转】Ubuntu 14.04.3上配置并成功编译Android 6.0 r1源码

    http://www.linuxidc.com/Linux/2016-01/127292.htm 终于成功把Android 6.0 r1源码的源码编译.先上图,这是在Ubuntu中运行的Android ...

  5. 在干净的ubuntu 14.10上编译Qemu2.2.0的过程

    下载Qemu的源代码 从官网http://wiki.qemu.org/Main_Page 中下载最新的源代码,目前是2.2.0. 安装依赖库和编译 编译过程分两步1. ./configure 2. m ...

  6. Ubuntu 14.10 下编译Hadoop2.4.0

    在http://www.aboutyun.com/thread-8130-1-1.html 这里看到到,安装过程遇到了上面说的问题,所以将此文转载过来,以备不时之需,感谢此作者. 问题导读: 1.如果 ...

  7. 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 ...

  8. Ubuntu 16.04 LTS 成功编译 Android 6.0 源码教程

    sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 \  libx11-dev:i386 ...

  9. 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fuchaosz/article/details/52473660 1 前言 经过一周的奋战,终于从谷 ...

随机推荐

  1. Android seLinux 设置

    在android O上添加服务.在访问一些路径的时出现了权限的问题,将seLinux关闭之后运行成功.所以需要设置相关的权限. 参考文档: http://blog.csdn.net/tung214/a ...

  2. git patch 使用

    使用git的时候,需要删除几个id,会对到之前的代码,但又想保留现在的代码,以便后面从新合并,所以就将现在的代码打包成patch,留到下次合并. 参考链接 http://www.jianshu.com ...

  3. Going deeper with convolutions 这篇论文

    致网友:如果你不小心检索到了这篇文章,请不要看,因为很烂.写下来用于作为我的笔记. 2014年,在LSVRC14(large-Scale Visual Recognition Challenge)中, ...

  4. e741. 将标签的焦点置于关联的文本框上面

    This example associates a label with a text field using setLabelFor(). A mnemonic is set on the labe ...

  5. Java中的Swing及AWT又称GUI编程

    Java中的Swing及AWT又称GUI编程. 关于学习Java要不要学Swing及AWT,这个完全取决于个人的开发及发展方向. 如果从事web方向的开发,则可以不用学习Swing及AWT. 如果从事 ...

  6. (源)VC助手VA破解使用指南

    一般情况下,你下载的破解版的VC助手,要么自带的有一个名为VA_X.dll的文件,要么是有一个可运行的破解程序,根据不同的情况进行如下操作,只要你下载的安装文件没有问题,就能正确打上破解补丁.网上有一 ...

  7. linq 根据指定条件返回集合中不重复的元素

    原理:先查询出数据,根据指定值分组,然后取第一条映射 1.第一种方法 string sql = string.Format("select*from PoliceLogistcs); db. ...

  8. Saltstack配置管理(2)

    1.SaltStack批量安装zabbix_agent端. vim /etc/salt/states/init/zabbix_agnet.sls zabbix_install.conf: pkg.in ...

  9. perl 查看某个模块的安装路径

    perldoc 命令可以查看某个模块的安装路径 命令: perldoc -l Bio::Seq 返回值如下: /usr/local/share/perl5/Bio/Seq.pm

  10. topK 算法

    搜索引擎热门查询统计 题目描述:    搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节.    假设目前有一千万个记录(这些查询串的重复度比较高,虽然 ...