AOSP编译错误汇总

unkonw type namespace

从图可以看出是namespace不对.解决方法 将 c 文件改成 cpp

因为编译的模块的测试模块依赖的共享库是vendor的, 所以测试模块页必须是vendor的

在测试模块加上:

LOCAL_VENDOR_MODULE := true

missing dependencies

这个是找不到应用的模块, 原因是模块是用 Android.mk 构建编译的,而我编译的测试模块是 Android.bp 构建的

  1. 全部改成 Android.bp
    androidmkAndroid.mk 生成为 Android.bp , 但是bp是无法条件编译的, 如果里面有条件编译 你可能需要修改你的 Android.mk
    同时你的模块如果引用了其他模块,其他模块也要改成 Android.mk, 总之就是麻烦 不好用
  2. 全部改成 Android.mk
    下面是例子:
    BUILD_NATIVE_TEST 自动包含依赖项 gtest
    LOCAL_MODULE_TAGS 标志着测试模块
include $(CLEAR_VARS)
LOCAL_MODULE := config-test
LOCAL_SRC_FILES := config_test.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_CFLAGS = -Wall -Werror -Wunused
#LOCAL_CLANG_CFLAGS += -Wno-error=unused-const-variable -Wno-error=unused-private-field
LOCAL_MODULE_TAGS := tests
LOCAL_SHARED_LIBRARIES := libconfig
LOCAL_VENDOR_MODULE := true
LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
include $(BUILD_NATIVE_TEST)

error: overriding commands for target

错误

makefile文件,发现去掉stem可以编译,但肯定不能去掉,去掉就达不到覆盖adbd的效果了, stem的意思是编译后adbd-root 然后名为adbd

diff --git a/system/core/adb/Android.bp b/system/core/adb/Android.bp
index bf54c278cd..9677c9181f 100644
--- a/system/core/adb/Android.bp
+++ b/system/core/adb/Android.bp
@@ -536,7 +536,6 @@ cc_binary {
 
 cc_binary {
     name: "adbd-root",
-    stem: "adbd",
     host_supported: false,
     defaults: ["adbd_bin_defaults"],
     cflags: [

最终解决方法 BoardConfig.mk 中添加:

BUILD_BROKEN_DUP_RULES := true
posted @ 2022-07-11 16:57  梦过无声  阅读(1494)  评论(0编辑  收藏  举报