x4412_ics_rtm_v10_140617.tar.bz2 编译问题解决方法



---------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,这个问题解决就编译通过了。

---------------------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值