Android 7.1 使用mmm編譯模組失敗
阿新 • • 發佈:2018-11-07
平臺:
RK3288 + android 7.1
問題:
rk3288_n712$ mmm frameworks/base/cmds/app_process/
.... Starting build with ninja ninja: Entering directory `.' ninja: error: 'out/target/product/rk3288/system/bin/linker_asan', needed by 'out/target/product/rk3288/system/bin/asan/app_process32', missing and no known rule to make it build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed make: *** [ninja_wrapper] Error 1 #### make failed to build some targets (19 seconds) ####
提示這個模組/檔案沒找到:out/target/product/rk3288/system/bin/linker_asan
rk3288_n712$ ll out/target/product/rk3288/system/bin/linker_asan
ls: cannot access 'out/target/product/rk3288/system/bin/linker_asan': No such file or directory
確實沒有.
分析:
單獨編譯不能通過? 但是全部編譯卻可以成功, 這種問題之前也遇到過, 只是一直忽略它.
按舊版本的SDK編譯解決方案, 找出linker_asan這個模組, 並編譯它, 可惜, 搜尋全部模組, 也找不到它.
無意間, 在檢視najia指令碼中發現了點端倪.
|-- out/build-rk3288.ninja:
command = /bin/bash -c "(rm -rf out/target/product/rk3288/system/bin/linker_asan ) && (ln -sf linker out/target/product/rk3288/system/bin/linker_asan )"
什麼意思?
linker_asan 只是linker的軟鏈
解決:
ln -sf linker out/target/product/rk3288/system/bin/linker_asan
執行後再編譯, 問題解決:
rk3288_n712$ mmm frameworks/base/cmds/app_process/
Running kati to generate build-rk3288-mmm-frameworks_base_cmds_app_process_Android.mk.ninja...
[100% 15/15] Install: out/target/product/rk3288/system/bin/asan/app_process32
#### make completed successfully (39 seconds) ####