平台信息:
内核:linux3.0.68
系统:android/android6.0
平台:rk3288
作者:庄泽彬(欢迎转载,请注明作者)
邮箱:2760715357@qq.com
摘要:最近在负责rk3288的pcba模块,由于在编译过程中遇到了一些问题,因此总结记录遇到的问题以及解决方法。
代码路径:rk3288-e810-android6.0/external/rk-pcba-test/
1、问题。
在正确的选择好要编译的产品之后进入external/rk-pcba-test/目录,执行mm -B强制编译这个模块会出现下面的问题:
make: *** No rule to make target 'out/target/product/rk3288/obj/STATIC_LIBRARIES/libpixelflinger_static_intermediates/export_includes', needed by 'out/target/product/rk3288/obj/EXECUTABLES/pcba_core_intermediates/import_includes'. Stop.
怎么办呢?问同事,百度,其实还是靠自己看看代码的结构吧。
2、解决思路:
查看pcba的Android.mk文件相关的代码片段:
LOCAL_STATIC_LIBRARIES += libminuitwrp libpixelflinger_static libpng libjpegtwrp libbluetooth
在编译这个模块的时候会依赖:libpixelflinger_static这个静态库。
我们现在在android源码的目录下搜索这个库的相关的信息:
1 zhuangzb@UYFSanbu02:~/project/E800/rk3288-e810-android6.0$ grep "libpixelflinge 2 Binary file ./.git/index matches 3 ./build/target/product/embedded.mk:51: libpixelflinger 4 ./system/core/libpixelflinger/tests/codegen/Android.mk:9: libpixelflinger 5 ./system/core/libpixelflinger/tests/arch-arm64/assembler/Android.mk:13: libp 6 ./system/core/libpixelflinger/Android.mk:57:LOCAL_MODULE:= libpixelflinger 7 ./system/core/libpixelflinger/Android.mk:83:LOCAL_MODULE:= libpixelflinger_stat 8 Binary file ./rockdev/Image-rk3288/system.img matches 9 ./external/rk-pcba-test/Android.mk:231:LOCAL_STATIC_LIBRARIES += libminuitwrp l 10 ./frameworks/native/opengl/libagl/Android.mk:29:LOCAL_SHARED_LIBRARIES := libcu 11 Binary file ./out/target/product/rk3288/symbols/data/nativetest/test-pixelfling 12 Binary file ./out/target/product/rk3288/symbols/data/nativetest/test-opengl-cod 13 Binary file ./out/target/product/rk3288/symbols/system/lib/libpixelflinger.so matches 14 Binary file ./out/target/product/rk3288/symbols/recovery/root/sbin/pcba_core matches 15 ./out/target/product/rk3288/installed-files.txt:343: 142104 /system/lib/libpixelflinger.so 16 Binary file ./out/target/product/rk3288/system/lib/libpixelflinger.so matches 17 Binary file ./out/target/product/rk3288/obj/PACKAGING/systemimage_intermediates/system.img matches 18 Binary file ./out/target/product/rk3288/obj/lib/libpixelflinger.so matches
这个库存放的路径是在 ./system/core/libpixelflinger/
因此我们要先编译这个库之后才可以编译pcba模块。
在android源码的根目录下执行make libpixelflinger_stat
之后进入external/rk-pcba-test/目录,执行mm -B即可编译通过。