编译Android驱动对应的C测试程序出错的解决方法以及正确流程

编写好驱动之后,另外写了个C程序来测试驱动,但是在编译的时候,出现了如下的错误:

build/core/base_rules.mk:166: *** frameworks/base/opengl/libs: MODULE.TARGET.ETC.egl.cfg already defined by development/tools/emulator/opengl/system/egl。 停止。


这里的意思是:

frameworks/base/opengl/libs目录已经在development/tools/emulator/opengl/system/egl定义了。

 

解决方法:

1、把development/tools/emulator/opengl/system/目录下的egl改一下名字,如:egl.bak

2、修改/development/tools/emulator/opengl/Android.mk文件,把里面的

include $(EMUGL_PATH)/system/egl/Android.mk

这一句给注释掉.

注意:千万不要把frameworks/base/opengl/路径下的 libs 目录删除,实践证明,删除这个目录后会出现一大堆的问题。开始我参照网上说的,删除之后就杯具了。

 

编译这个C驱动测试程序需要注意:

1、程序放在 (你的android源码目录)/external/ 下面

2、Android.mk 和对应的程序C文件必须存在,最好放在同一级目录下面

3、编译的时候,回到 你的android源码目录下面,使用 make 你的项目名称进行编译

 

样例:

1、在~/workspace/android-4.0.4_r1.2/external/yapp/目录下建立 helloapp目录

2、在helloapp目录下创建对应的helloapp.c文件

3、在helloapp目录下创建唯一的Android.mk文件

4、回到~/workspace/android-4.0.4_r1.2/目录,使用

make helloapp

命令进行编译

5、编译成功后,类似下面:

Install: out/target/product/generic/system/lib/libstdc++.so
Notice file: bionic/libm/NOTICE -- out/target/product/generic/obj/NOTICE_FILES/src//system/lib/libm.so.txt
Install: out/target/product/generic/system/lib/libm.so
Install: out/target/product/generic/system/bin/helloapp


到此,驱动的测试程序编译完毕。

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值