android 编译记录

来源:互联网 发布:基于oracle的sql优化 编辑:程序博客网 时间:2024/05/17 22:07

Android系统编译问题

   获取Android源码流程:

  • 从 https://code.google.com/p/git-repo/downloads/list  下载repo脚本

  • repo init -u git://github.com/CyanogenMod/android.git -b cm-10.1 (CM的Android4.2源码)

  • repo sync -j16 (同步源码)

  • ​编译操作看 http://source.android.com/source/initializing.html


1、java版本不兼容

解决方法:一改build/core/main.mk中关于java版本判断的语句,二改build/core/combo/java.mk中的java主版本号,比如把1.5改成1.7

2、/usr/include/features.h:324:26: 致命错误: bits/predefs.h:没有那个文件或目录 

解决方法:sudo apt-get install libc6-dev-i386

3、/usr/bin/ld: cannot find -lstdc++

解决方法:sudo apt-get install g++-multilib

4、Enum.java中 return ordinal - o.ordinal; 语法错误

解决方法:改成return ordinal - o.ordinal();

5、bad class file magic (cafebabe) or version (0033.0000)

解决方法:把jdk1.7换成1.6的,sudo apt-get install openjdk-6-jdk

6、“_FORTIFY_SOURCE”重定义

解决方法:把build/core/combo/HOST_linux-x86.mk中的HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0加一个-U_FORTIFY_SOURCE改为HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

7、variable ‘ParamName’ set but not used [-Werror=unused-but-set-variable]错误

解决方法:在frameworks/compile/slang/Android.mk里面把

local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter -Werror中的-Werror去掉

8、linker.cpp:1394:49: 错误: expected primary-expression before ‘,’ token

解决方法:在linker.cpp中加上头文件#include "stddef.h"或"cstddef"

9、format_output.h:94:22: 错误: reference ‘counts’ cannot be declared ‘mutable’ [-fpermissive]

解决方法:手动去掉前面的mutable

10、undefined reference to `dladdr'和undefined reference to `pthread_create'

解决方法:在external/llvm/llvm-host-build.mk

中加入LOCAL_LDLIBS := -lpthread -ldl

11、gtest-param-util.h:122:11: 错误: ‘ptrdiff_t’不是一个类型名

解决方法:在gtest-param-util.h中加入#include "cstddef"

12、CtsVerifier_intermediates/classes-full-debug.jar] Error 41</t extends android.app.activity & passfailactivity>

解决办法:有点怪异,两种方法,一是参考http://www.360doc.com/content/12/0314/11/474846_194227428.shtml中的方法不编译CTS模块; 二是参考http://blog.qhm123.com/2012/02/6/fedora-16-x64-compile-android-4.0.3-source-code.html中的直接注释掉//Dialog onCreateDialog(int id, Bundle args);

13、Can't exec "libtoolize": 没有那个文件或目录 at /usr/bin/autoreconf line 196.

解决办法:sudo apt-get install libtool


Android内核交叉编译问题

1、安装arm交叉编译工具

sudo apt-get install gcc-arm-linux-gnueabi cpp-arm-linux-gnueabi

2、改kernel source中的Makefile中的

ARCH ?= arm

CROSS_COMPILE ?= /usr/bin/arm-linux-gnueabi-

或者

$ export ARCH=arm

$ export SUBARCH=arm

$ export CROSS_COMPILE=arm-linux-gnueabi-

或者

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-

3、Makefile中

= 是最基本的赋值

:= 是覆盖之前的值

?= 是如果没有被赋值过就赋予等号后面的值

+= 是添加等号后面的值 

4、alignment.c:298:15: 错误: 此函数中的‘offset.un’在使用前可能未初始化

解决方法:看 https://patchwork.kernel.org/patch/1445111/  中的patch对应修改。

5、/tmp/ccNcXwyJ.s:69: Error: selected processor does not support ARM mode `smc 0'

解决方法:看 https://gist.github.com/4395518  中的patch对应修改。

6、arm-linux-gnueabi-gcc: 错误: ":没有那个文件或目录

解决方法:这是一个神经质问题,居然跟我中文环境有关,参考 http://wifihack.net/blog/tag/kernel/  来修改;不过靠谱的修改方法则是 https://github.com/Pivosgroup/buildroot-linux-kernel/commit/1524a2dc8bfbee683384996f434a2a991416c1df 

更靠谱的做法是参考 https://github.com/teamhacksung/android_kernel_samsung_smdk4210_new/commit/3d59d99345aee5d6d1a5f2138e66b8ef049f0dea 中提到的,把Makefile或Makefile.common中所有的-qv exported都改为-E "^[0-9]+"

7、/bin/sh: 1: uudecode: not found

解决方法:sudo apt-get install sharutils

8、net/ipv4/netfilter/nf_nat_standalone.c:287:2:错误

解决方法:这是在主Makefile的KBUILD_CFLAGS中加了-Werror(把所有警告当错误处理)参数,去掉它就可以了。

9、make menuconfig出错:mconf.c:(.text.startup+0x66): undefined reference to `initscr'

解决方法:sudo apt-get install lib32ncurses5-dev

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩子在幼儿园内向老尿裤子怎么办 五岁宝宝总是抽鼻子有黄鼻涕怎么办 2岁宝宝头有大人的那么大怎么办 一岁四个月宝宝不理人不说话怎么办 两岁七个月还不会说话怎么办 2岁3个月宝宝说话结巴怎么办 两周的宝宝突然说话结巴怎么办 宝宝3岁半了说话口吃怎么办? 四十天的宝宝吐奶严重怎么办 宝宝吐奶从鼻子喷出来怎么办 六个多月宝宝吐奶一股酸味怎么办 50天的宝宝吃了就吐怎么办 微信语音群聊超过9人怎么办 四个月宝宝母乳不够不喝奶粉怎么办 四个月的宝宝母乳不够吃怎么办 火山直播十多天了还都是假人怎么办 吉利汽车锁了后屁股灯还亮怎么办 六个月凶了他突然不说话了怎么办 微信聊天聊的时间长了没话题怎么办 群聊同学加我微信不想加怎么办? 翡翠销售遇到不说话的客人怎么办 4个月宝宝吃手上瘾怎么办 宝宝吃手上瘾拒绝吃奶粉吃奶怎么办 2岁宝宝特别粘人爱哭怎么办 3岁半宝宝突然说话口吃怎么办 2岁3个月宝宝突然说话结巴怎么办 一位特爱说话爱玩的高中生怎么办 猫5天不吃不喝躲起来该怎么办 两个月的小家猫睡觉要黏人睡怎么办 成年的儿子不听话做父母要怎么办 听到孩子上课又不听话想揍他怎么办 18个月小孩脾气很犟怎么办 烦自己的孩子想弄死他怎么办 楼道经常有小孩在门口恶作剧怎么办 2岁宝宝咳嗽咳吐了怎么办 不小心把鱼刺吃下去该怎么办 儿子在学校被老师甩耳光我该怎么办 家长诬陷老师打她家孩子耳光怎么办 一岁宝宝总觉得有痰怎么办 一岁宝宝感冒咳嗽有痰怎么办 哭的时候踹不过气来应该怎么办