《Android系统学习》第七章:Android4.0.1在ubuntu12.04编译的一个问题

来源:互联网 发布:linux gcc 4.8.5 编辑:程序博客网 时间:2024/06/09 21:11

ics/frameworks/base/tools/obbtool/编译提示:

<命令行>:0:16: 错误: #undef 指示的末尾有多余的标识符 [-Werror]  //需要编译器支持-Werror参数cc1plus: all warnings being treated as errorsmake: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] 错误 1

原因:编译器版本。因为ics/out/host/目录的编译是在宿主机上进行,换言之、也就是没有使用google的交叉编译器;这部分使用的是ubuntu的普通gcc编译器完成。

该部分出现问题的原因也就是宿主机编译器版本问题。

1.ics/build/core/combo/HOST_linux-x86.mk

将以下语句:

HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0

改为:

HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

2.如果还是不行,就屏蔽掉一个编译器的功能

ics/frameworks/base/tools/obbtool/Android.mk

如下语句:

LOCAL_CFLAGS := -Wall -Werror

改为:

LOCAL_CFLAGS := -Wall

====================================================================================================================================

总结:

gcc -v

查看本机gcc版本号,一般gcc4.4.x比较稳定。

gcc所在路径:/usr/bin/gcc

建立硬连接:ln gcc-4.4 gcc

目录必须用软连接来建立:eg:

mkdir tan  //建立tan目录

ln -s tan li  //建立li连接目录