---------sun-java6-jdk---
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev
sudo apt-get install build-essential zip curl libncurses5-dev zlib1g-dev genromfs
sudo apt-get install lib32ncurses5 lib32z1
sudo apt-get install mercurial
sudo apt-get install subversion
sudo apt-get install gettext texinfo (msgfmt,makeinfo)
sudo apt-get install lsb-core libc6-dev-i386 g++-multilib lib32z1-dev lib32ncurses5-dev (64bit编译安卓)
sudo apt-get install libwxgtk2.6-dev (X)
------------
export JAVA_HOME=/usr/lib/jvm/jdk1.6
export JRE_HOME=/usr/lib/jvm/jdk1.6/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
----------------------------------------
./mk -s 提示no source
将mk脚本的第一行:#!bin/sh修改为#!bin/bash
--------------------------
./mk -k 生成zImage 10分钟
./mk -b 生成qt-rootfs.img 1小时
./mk -s 17:46-19:11,1小时 n分钟
./mk -kr
----------------------------------------------
-----------------
修改源码目录下./build/core/combo/HOST_linux-x86.mk
将以下语句
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
修改为
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
-------------------
./external/mesa3d/src/glsl/linker.cpp
glsl错误
把 "#include <stddef.h>" 添加到 linker.cpp 文件头部。
------------------
需要修改external/oprofilebpp/format_output.h:94行
mutable counts_t & counts为
counts_t & counts
------------------
external/gtest/src/../src/gtest-filepath.cc:208:28: warning: missing initializer for member ‘stat::st_ino’ [-Wmissing-field-initializers]
make: *** [out/host/Linux-x86/obj/STATIC_LIBRARIES/libgtest_host_intermediates/gtest-all.o] Error 1
解决方法
external/gtest/include/gtest/internal/gtest-param-util.h
add
#include <cstddef>
-------------------
external/gtest/src/../include/gtest/internal/gtest-param-util.h:122:11: error: a€?ptrdiff_ta€? does not name a typ
解决方法:
$vi external/gtest/src/../include/gtest/internal/gtest-param-util.h
+#include <cstddef>
--------------------
frameworks/compile/slang/slang_rs_export_foreach.cpp:249:23: error: variable ‘ParamName’ set but not used [-Werror=unused-but-set-variable]
cc1plus: all warnings being treated as errors
make: *** [out/host/Linux-x86/obj/EXECUTABLES/llvm-rs-cc_intermediates/slang_rs_export_foreach.o] Error 1
ics compile fail!
# gedit frameworks/compile/slang/Android.mk
在打开的makefile文件中按照下面更改:
-local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter -Werror
+local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter
---------------------------------------------------------------
make: *** [out/host/linux-x86/obj/EXECUTABLES/llvm-rs-cc_intermediates/llvm-rs-cc] Error 1
make: *** Waiting for unfinished jobs….[/color]
之后在网上查了好久好久,没找到什么解决办法,尝试更改交换区使用率,用单线程make,都不行。
在快要放弃的情况下,在某篇帖子上看到make clean这么个东西,就死马当活马医了,执行命令后,out目录就被clean掉了
之后用单线程make命令(就是单纯make, 后面不跟-j参数),一直编译,没出什么错误,大约编译了五六个小时,出现了如下信息;
--------------------------------
make: *** [out/target/common/obj/APPS/CtsVerifier_intermediates/classes-full-debug.jar] Error 41
make: Leaving directory `/media/zhaodezhong/study/ics_source'
原因分析:原因不详,忘高人指教。。。
解决办法:在网上查了些资料,知道CTS 全称Compatibility Test Suite兼容性测试工具。当电子产品开发出来,并定制了自己
的Android系统后,必须要通过最新的CTS检测,以保证标准的android application能运行在该平台下。通过了CTS验证,需要将
测试报告提交给Google,已取得android market的认证。感觉对android自身运行关系不大,所以干脆不编译这块内容了。
找到cts/下的Android.mk文件,注释掉里面两行代码
#include cts/CtsTestCoverage.mk
#include $(call all-subdir-makefiles)
整个cts/下的代码都不编译了,OK,这个问题解决就编译通过了。
---------------------------