android2.3源码编译小结

按照老罗一篇博客的指点我完成了我的android源码的编译,而且将编译好的镜像文件良好的运行在模拟器上。感谢老罗的博客,下面是这篇博客的链接

http://blog.csdn.net/luoshengyang/article/details/6559955

在编译android2.3源码的过程中我遇到了几个问题,除了老罗博客里写的那些。先说一下我的编译环境是Ubuntu10.04装在VirtualBox-3.2.12虚拟机下。

我遇到一个困扰了我一段时间的问题,按照老罗的博客我修改了

#ifneq (64,$(findstring 64,$(build_arch)))

ifneq (i686,$(findstring i686,$(build_arch)))

因为不是64位的操作系统,但我在这出现了问题,在make过程中出现一个错误,main.mk 152 **不应该出现endif。经过搜索和对比原因是我没有在ifneq后面加空格,虽然系统识别出关键字ifneq但运行出错了,所以多出来个endif,所以出现这个错误。还是基础不行啊。

下面是在makefile文件下ifeq的用法

ifneq 条件表达式
ifneq 用来判断参数是否不相等,功能与 ifeq 相反。

语法格式如下:

ifneq (arg1, arg2)
ifneq 'arg1' 'arg2'
ifneq "arg1" "arg2"
ifneq 'arg1' "arg2"
ifneq "arg1" 'arg2'

1 ifeq 表示条件语句的开始,并指定了一个比较条件(相等)。
2 ifeq 和参数之间用若干空白(空格、Tab 字符等)分开。
3 arg1 和 arg2 使用圆括号包围、并使用逗号分隔(如果是用单引号或双引号的形式,则参数之间不需要逗号,这个是容易忽视的错误)。逗号前后可以使用若干空白(空格、Tab 字符等)。
4 make 替换并展开 arg1 和 arg2 后,对它们的值进行比较。如果相同则将 text-if-true 作为 make 要执行的一部分,否则将 text-if-false 作为 make 要执行的一部分。
5 通常我们 ifeq 或者 ifneq 来判断一个变量的值是否为空(不包含任何字符)。


第二个问题就是找不到OpenSLESUT.h,具体解决办法是# cp /home/Android-2.3/system/media/opensles/libopensles/OpenSLESUT.h /home/Android-2.3/system/media/opensles/include/SLES/OpenSLESUT.h

向老罗继续学习,go。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值