Android源码编译:Android系统源码编译时遇到的错误及解决方法

下面是在编译安卓源码是遇到的错误,记录下来,防止再次遇到。

1.编译时候出现如下错误:

build/core/base_rules.mk:134: *** prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6/lib32: 

MODULE.HOST.STATIC_LIBRARIES.libbfd already defined by prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7/lib32.  Stop.

把prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6/lib32目录删除没有出现错误。

 

2.make:*** No rule to make target `external/wpa_supplicant_8/wpa_supplicant/src/drivers/drivers.mk‘. Stop.

在ubuntu下复制一份过来,

这个wpa_supplicant_8里面有一些软链接,如果在Windows下解包了,在复制到Ubuntu下会导致失效;

 

 3.******** missing separator. stop

把前面的文件删除即可。

 

4.

编译错误:

build/core/Makefile:25:***Prebuilt apk found in PRODUCT_COPY_FILES:

device/ti/nexttab/google_paly/Gmail.apk:system/app/Gmail.apk, use BUILD_PREBUILT instead!. Stop.

解决:

gedit build/core/Makefile 

#Tommy Delete 删除如下代码

#define check-product-copy-files

#$(if $(filter %.apk, $(1)),$(error \

# Prebuilt apk found in PRODUCT_COPY_FILES: $(1), use BUILD_PREBUILT #instead!))

#endef

编译OK

烧写系统后,便可使用系统中应用了。但是有些应用不能用这种方法安装,如果用这种方式,生成的应用打不开。

*******************************

 

5.-fuse-linker-plugin, but liblto_plugin.so not found是在externel这个目录有问题

如果要让新安装的apk有系统权限,可以在system/bin/目录下的文件里加上chmod 777 /data/app/*.apk  如果出现Read-only file system问题。应先挂载系统:mount -o remount,rw /system 这个命令也可以放在系统起来执行的文件里面。逗号两边没有空格、

 

6.

编译错误提示:

make -C /lib/modules/3.2.0-29-generic-pae/build M=/home/linux/driver/experiment/ex04
make[1]: Entering directory `/usr/src/linux-headers-3.2.0-29-generic-pae'
  LD      /home/linux/driver/experiment/ex04/built-in.o
  CC [M]  /home/linux/driver/experiment/ex04/hello.o
/home/linux/driver/experiment/ex04/hello.c:24:1: error: negative width in bit-field ‘<anonymous>’
/home/linux/driver/experiment/ex04/hello.c:25:2: error: negative width in bit-field ‘<anonymous>’
make[2]: *** [/home/linux/driver/experiment/ex04/hello.o] Error 1
make[1]: *** [_module_/home/linux/driver/experiment/ex04] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-29-generic-pae'
make: *** [modules] Error 2

最后发现是module_param声明中有关权限的问题,这个权限不能是可写的.也就是说这个权限只能是rx的任意组合,5或4或1.因为模块运行在内核空间中,权限要求比较严格.

所以将

module_param(mystring, charp, 0777);

改成

module_param(mystring, charp, 0555);

就可以了.

 

7.  关闭error, forbidden warning

最近在编译android kernel时,遇到error, forbidden warning, 导致编译中断,大大降低了debug效率。

关闭方法如下:在kernel/scripts/gcc-wrapper.py中注释掉interpret_warning(line)即可。

--- a/scripts/gcc-wrapper.py

+++ b/scripts/gcc-wrapper.py

@@ -78,7 +78,7 @@ def run_gcc():

        proc = subprocess.Popen(args, stderr=subprocess.PIPE)

        for line in proc.stderr:

             print line,

-            interpret_warning(line)

+            #interpret_warning(line)

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kevin@1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值