前言:

据说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. Enums and Lookup Tables with EF Code First

    With EntityFramework’s support for enums, there is no longer any need to include lookup tables in th ...

  2. 深入浅出 kvm qemu libvirt

    在所谓的kvm技术中,应用到的其实有2个东西:qemu+kvmkvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备:qemu是模拟IO设备(网卡,磁盘),kvm加上 ...

  3. FPGA内部动态可重置PLL讲解(二)

    对于全局时钟的管理,涉及到关于亚稳态的知识,大家可以上网搜索相关资料,这里不再赘述.亚稳态最简单的理解形式是无法判断是处于高电平状态还是处于低电平状态,这样会导致整个系统不稳定,会出现逻辑上的错误. ...

  4. 关于Unity中Mecanim动画的重定向与动画混合

    应用 一个RPG游戏,里面有100种怪物,每种怪物其实都差不多的,行走,跳跃,攻击,难道动画师要调100次动画吗?其实不需要 Unity抽象出人形动画系统,用Unity简化版的骨骼来进行统一的管理,只 ...

  5. tensorflow prelu的实现细节

    tensorflow prelu的实现细节 output = tf.nn.leaky_relu(input, alpha=tf_gamma_data,name=name) #tf.nn.leaky_r ...

  6. MySQL存储过程、触发器 小例子

    一.存储过程 语法: CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...]) BEGIN ... END 参数: IN 输入参数 表示该参数的值必须在调用存 ...

  7. eclipse里面的常用快捷键

    eclipse里面的常用快捷键:代码实战 package com.study.lgs; import java.awt.List; import java.io.FileInputStream; im ...

  8. Spring JDBC调用存储过程

    以下示例将演示spring jdbc如何调用存储过程.将通过调用存储过程来读取Student表中的一个可用记录.将传递一个学生ID并获取学生记录信息. 语法: SimpleJdbcCall jdbcC ...

  9. C#数据结构----------------------------哈希表源码解析

    转载: C# Hashtable源码剖析 源代码版本为 .NET Framework 4.6.1 本系列持续更新,敬请关注 有投入,有产出. Hashtable实现一个哈希表(也叫散列表),将键映射到 ...

  10. jQuery 文件上传插件:uploadify、swfupload

    jQuery 文件上传插件: uploadify.swfupload