编译Android驱动对应的C测试程序出错的解决方法以及正确流程
编写好驱动之后,另外写了个C程序来测试驱动,但是在编译的时候,出现了如下的错误:
[plain]
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定义了。
解决方法就是把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、编译成功后,类似下面:
[plain]
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
到此,驱动的测试程序编译完毕。
补充:移动开发 , Android ,