//------------------------2016.8.20--------------------
問題一:
make: *** No rule to make target `out/host/linux-x86/obj/STATIC_LIBRARIES/libgtest_host_intermediates/export_includes',
needed by
`out/host/linux-x86/obj/SHARED_LIBRARIES/libartd_intermediates/import_includes'. Stop.
解決思路:
這個問題是我成功編譯整個系統後,編譯單個art模塊mmm -B art 時出的錯。
尋找out/host/linux-x86/obj/STATIC_LIBRARIES/libgtest_host_intermediates/這個路徑,發現這個路徑是空的。整個文件夾沒有,再源碼路徑下搜索libgtest發現了external目錄下有對應的文件目錄。因此,mmm external/gtest 先編譯gtest模塊,發現果然生成了out/host/linux-x86/obj/STATIC_LIBRARIES/libgtest_host_intermediates/路徑,再mmm art即可成功編譯。
問題二:
undefined reference to ‘dwfl_module_……
提示某個android系統自帶文件錯誤。某個成員變量或者方法未定義
解決思路:
一般是編譯意外中斷導致某個鏈接庫沒有編譯完成。尋找方法所在的類所在的根目錄。重新編譯這個模塊。
搜索dwfl,發現能再/external/elfutils目錄裏面找到,因此 mmm -B external/elfutils 即可
小結:
android源碼編譯錯誤一般通過搜索錯誤的相關關鍵字,查找錯誤發生的所在模塊,如果對應模塊無法編譯,再尋找該模塊所需要的模塊進行編譯。
//------------------------2016.8.20--------------------