`
hcleon
  • 浏览: 266231 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ubuntu 64位编译 android 4.0源码

 
阅读更多
====== Ubuntu 64位编译 android 4.0源码 ======
参照Android官方文档构建编译环境
http://source.android.com/source/initializing.html

===== 错误1 =====

host C++: obbtool <= frameworks/base/tools/obbtool/Main.cpp
:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
:0:0: note: this is the location of the previous definition
cc1plus: all warnings being treated as errors

make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1

===== 错误2 =====

解决办法:
build/core/combo/HOST_linux-x86.mk line 61:

把:
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
改为:
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
参考:http://code.google.com/p/android/issues/detail?id=20795

===== 错误3 =====

development/tools/emulator/opengl/host/libs/Translator/GLcommon/GLDispatch.cpp:22:20: fatal error: GL/glx.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libGLcommon_intermediates/GLDispatch.o] Error 1

解决办法:
sudo apt-get install libgl1-mesa-dev

===== 错误4 =====
frameworks/compile/slang/slang_rs_export_foreach.cpp:247:23: error: variable ‘ParamName’ set but not used [-Werror=unused-but-set-variable]
解决办法:
vim frameworks/compile/slang/Android.mk
把:
local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter -Werror
改为:
local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter
参考:http://code.google.com/p/android/issues/detail?id=22006#c0
参考:http://groups.google.com/group/android-building/browse_thread/thread/0207abb98ed72304

===== 错误5 =====
In file included from external/oprofile/libpp/arrange_profiles.cpp:24:0:
external/oprofile/libpp/format_output.h:94:22: error: reference ‘counts’ cannot be declared ‘mutable’ [-fpermissive]
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/liboprofile_pp_intermediates/arrange_profiles.o] Error 1
解决办法:
external/oprofile/libpp/format_output.h

把:
mutable counts_t & counts;
改为:
counts_t & counts;

===== 错误6 =====
external/llvm/lib/Support/Mutex.cpp:143: undefined reference to `pthread_mutex_trylock'
collect2: ld returned 1 exit status
解决办法:
vim external/llvm/llvm-host-build.mk
LOCAL_LDLIBS := -lpthread -ldl

采用以下解决办法没有成功
vi external/llvm/lib/Support/Android.mk
添加
LOCAL_C_INCLUDES += system/core/include/cutils
LOCAL_SHARED_LIBRARIES := libcutil
(其中存在两个模块,两个都加上上面两句话吧)
以及在Mutex.cpp文件中加上threads.h头文件的引入
vi external/llvm/lib/Support/Mutex.cpp
添加
#include
以及在Threading.cpp文件中加上threads.h头文件的引入
vi external/llvm/lib/Support/Threading.cpp
添加
#include
===== 错误7 =====
external/gtest/src/../include/gtest/internal/gtest-param-util.h:122:11: error: ‘ptrdiff_t’ does not name a type
解决办法:
vim external/gtest/src/../include/gtest/internal/gtest-param-util.h
#include

















1._FORTIFY_SOURCE”重定义

build/core/combo/HOST_linux-x86.mk line 61: -HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0 +HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
修改build/core/combo/HOST_linux-x86.mk 61行,将 HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0 修改成 HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

2.错误: reference ‘counts’ cannot be declared ‘mutable’ [-fpermissive]
external/oprofile/libpp/format_output.h

自己动手修改。去除mutable。

3.external/gtest/src/../include/gtest/internal/gtest-param-util.h:122:11: 错误: ‘ptrdiff_t’不是一个类型名
In file included from external/gtest/src/../include/gtest/gtest-param-test.h:157:0,
                 from external/gtest/src/../include/gtest/gtest.h:69,
                 from external/gtest/src/../src/gtest.cc:34,
                 from external/gtest/src/gtest-all.cc:36:

解决方法:
$vim external/gtest/src/../include/gtest/internal/gtest-param-util.h
#include <cstddef>

4.host Executable: test-librsloader (out/host/linux-x86/obj/EXECUTABLES/test-librsloader_intermediates/test-librsloader)
host StaticLib: libui (out/host/linux-x86/obj/STATIC_LIBRARIES/libui_intermediates/libui.a)
out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Signals.o): In function `PrintStackTrace':
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Unix/Signals.inc:219: undefined reference to `dladdr'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Unix/Signals.inc:231: undefined reference to `dladdr'
out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Threading.o): In function `llvm::llvm_execute_on_thread(void (*)(void*), void*, unsigned int)':
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Threading.cpp:96: undefined reference to `pthread_create'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Threading.cpp:91: undefined reference to `pthread_attr_setstacksize'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Threading.cpp:100: undefined reference to `pthread_join'
out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o): In function `MutexImpl':
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:69: undefined reference to `pthread_mutexattr_init'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:75: undefined reference to `pthread_mutexattr_settype'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:80: undefined reference to `pthread_mutexattr_setpshared'
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:89: undefined reference to `pthread_mutexattr_destroy'
out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o): In function `llvm::sys::MutexImpl::tryacquire()':
/home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:143: undefined reference to `pthread_mutex_trylock'
collect2: ld 返回 1
make: *** [out/host/linux-x86/obj/EXECUTABLES/test-librsloader_intermediates/test-librsloader] 错误 1
make: *** 正在等待未完成的任务....

解决方法:
$vim external/llvm/llvm-host-build.mk
LOCAL_LDLIBS := -lpthread -ldl

5.collected 3100 test methods in 225 junit test classes
target Strip: libchromium_net (out/target/product/generic/obj/lib/libchromium_net.so)
target Java: LatinIME (out/target/common/obj/APPS/LatinIME_intermediates/classes)
target Dex: Music
target Strip: libandroid_runtime (out/target/product/generic/obj/lib/libandroid_runtime.so)
host C++: llvm-rs-cc <= frameworks/compile/slang/slang_rs_export_foreach.cpp
frameworks/compile/slang/slang_rs_export_foreach.cpp: 在静态成员函数‘static slang::RSExportForEach* slang::RSExportForEach::Create(slang::RSContext*, const clang::FunctionDecl*)’中:
frameworks/compile/slang/slang_rs_export_foreach.cpp:247:23: 错误: variable ‘ParamName’ set but not used [-Werror=unused-but-set-variable]
cc1plus:所有的警告都被当作是错误

解决方法:
$ vim frameworks/compile/slang/Android.mk
#local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter -Werror
local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter

6.external/mesa3d/src/glsl/linker.cpp:623:33: 警告:   ‘virtual ir_visitor_status remap_variables(ir_instruction*, gl_shader*, hash_table*)::remap_visitor::visit(ir_dereference_variable*)’所隐藏 [-Woverloaded-virtual]
external/mesa3d/src/glsl/linker.cpp: 在函数‘void assign_varying_locations(gl_shader_program*, gl_shader*, gl_shader*)’中:
external/mesa3d/src/glsl/linker.cpp:1394:49: 错误: expected primary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1394:50: 错误: ‘varyings’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1394:58: 错误: ‘offsetof’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1395:48: 错误: expected primary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1412:47: 错误: expected primary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1412:48: 错误: ‘position’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1414:47: 错误: expected primary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1414:48: 错误: ‘pointSize’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1424:47: 错误: expected primary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1424:48: 错误: ‘position’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1428:47: 错误: expected primary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1428:48: 错误: ‘frontFacingPointCoord’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1431:47: 错误: expected primary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1431:48: 错误: ‘frontFacingPointCoord’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp: 在函数‘void link_shaders(const gl_context*, gl_shader_program*)’中:
external/mesa3d/src/glsl/linker.cpp:1734:49: 错误: expected primary-expression before ‘,’ token
external/mesa3d/src/glsl/linker.cpp:1734:50: 错误: ‘fragColor’在此作用域中尚未声明
external/mesa3d/src/glsl/linker.cpp:1734:59: 错误: ‘offsetof’在此作用域中尚未声明
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libMesa_intermediates/src/glsl/linker.o] 错误 1
解决方法:
vim external/mesa3d/src/glsl/linker.cpp
添加:
#include <cstddef>
分享到:
评论
2 楼 dingran 2012-05-02  
比如第7个错误的解决办法是:

解决方法:
$vi external/gtest/src/../include/gtest/internal/gtest-param-util.h
#include <cstddef>
1 楼 dingran 2012-05-02  
你应该仔细编辑一下,从第六条开始就少东西了。不过还是感谢你的辛苦,谢谢。

相关推荐

    在Ubuntu10.04下载和编译android 4.0源代码(三)

    在Ubuntu10.04下载和编译android 4.0源代码(三)

    在Ubuntu10.04下载和编译android 4.0源代码(一)

    在Ubuntu10.04下载和编译android 4.0源代码(一)

    ubuntu下编译android4.0.pdf

    在Ubuntu系统下编译Android 4.0(Ice Cream Sandwich, ICS)是一个技术性较强的过程,涉及到多个步骤和依赖项。以下是对整个过程的详细解释: 首先,我们需要准备一台装有Ubuntu 10.04 64位操作系统的计算机。尽管...

    Ubuntu12.064位源码编译Android4.0.pdf

    在本文中,我们将深入探讨如何在Ubuntu 12.06 64位系统上编译Android 4.0.1的源代码。这个过程涉及到多个步骤和要求,包括系统配置、必要的软件安装以及可能遇到的问题及解决方案。 首先,确保你的系统满足编译...

    Ubuntu10.04 --32位系统下编译Android 4.0

    ### Ubuntu 10.04 32位系统下编译Android 4.0的知识点 #### 一、环境准备与软件安装 1. **Java环境配置:** - 更新软件包列表: ```bash sudo add-apt-repository "deb ...

    ubuntu10.4编译funambol android源码

    【Ubuntu10.4编译Funambol Android源码详解】 在云计算日益普及的时代,同步服务成为了连接不同设备间数据的重要桥梁。SyncML协议作为其中的代表性协议,因其开放性和跨平台特性备受青睐。Funambol是一个开源的...

    安卓4.0源码及内核下载编译教程(图文)

    ### 安卓4.0源码及内核下载编译教程关键知识点解析 #### 标题与描述核心知识点 标题和描述明确指出本教程旨在详细介绍安卓4.0源码及内核的下载与编译流程,同时提供了图文并茂的指导,确保读者能够顺利进行安卓4.0...

    最新最全网络首发安卓4.0源码及内核下载编译教程

    通过本教程的学习,开发者能够理解如何在Ubuntu 10.04环境下下载、配置并编译Android 4.0的源码。这一过程不仅涉及到环境搭建、软件安装,还包括复杂的编译步骤。掌握这些技能对于深入理解Android操作系统的工作原理...

    Android4.0编译烧写[参照].pdf

    《Android4.0编译烧写详解》 在Android开发领域,从源代码编译操作系统并烧写到设备上是一项复杂而重要的任务。本文将详细阐述Android 4.0(Ice Cream Sandwich,简称ICS)的编译和烧写过程,为开发者提供一份全面...

    Android4.0编译烧写[归纳].pdf

    【Android4.0编译烧写过程详解】 在软件开发领域,尤其是针对嵌入式设备,编译和烧写操作系统是至关重要的步骤。对于Android系统,这个过程涉及到多个环节,包括环境配置、源码获取、编译配置以及目标文件生成等。...

    FS_S5PC100平台Android4.0用户手册_V1.2

    在Android 4.0源码的下载和编译过程中,文档指导了如何下载和编译u-boot、Android文件系统和内核。这个过程是将源代码转换为可运行的二进制文件的关键步骤,对于开发人员来说,理解编译过程对于调试和优化应用程序至...

    Android-x86源码的编译

    请注意,编译Android-x86源码是一个复杂的过程,可能需要大量的磁盘空间、内存和处理器资源。在整个过程中,建议参考官方文档和社区资源以解决可能出现的问题和错误。此外,由于Android版本不断更新,这些步骤可能会...

    android classes.jar 4.0-5.0

    描述中提到,在Ubuntu 64位14.04.1环境下编译了Android 5.0.0的源码,这表明这是一个涉及到Android系统底层开发的过程。Android源码是开放的,允许开发者深入理解系统工作原理,并根据需要进行自定义修改。编译源码...

    OK210Android应用开发手册

    在编译Android4.0源码,形成文件系统的过程中,建议用户在真实的Ubuntu系统中进行开发,以获得更好的编译速度。此外,在编译之前需要确保系统已安装了所有必要的库文件,例如使用命令行运行的android4.0-install.sh...

    MTK6577+Android编译之kernel

    本项目基于MTK6577平台,采用Android 4.0系统进行kernel的编译工作。开发环境搭建在虚拟机内,操作系统选用的是Ubuntu 14.04。硬件配置方面,最初的内存配置为H9TP32A4GDMCPR,包含4GB eNAND和512MB LPDDR2;后续...

    MTK 4.0 Build_environment

    本文档提供了在Ubuntu 10.04 64位操作系统上搭建MediaTek(MTK)4.0 Android 4.0构建环境的详细步骤。这个构建环境主要用于编译和构建基于MTK平台的Android系统。 #### 环境需求 - **操作系统**: Ubuntu 10.04 LTS...

    MTK6577+Android编译之uboot

    在整个过程中,uboot的编译不仅仅是简单的源码编译,还包括了与硬件平台密切相关的定制和适配工作,确保uboot能够正确引导和加载Android系统。此外,uboot的配置和编译还涉及到设备树(Device Tree)和scatter文件...

Global site tag (gtag.js) - Google Analytics