【问题标题】:How to add project to Android Build? [closed]如何将项目添加到 Android Build? [关闭]
【发布时间】:2013-01-16 14:57:36
【问题描述】:

我在构建 Android ROM(galaxys2att、姜饼)时遇到问题。我决定是时候更聪明地处理 makefile 了。所以我创建了一个简单的测试项目来玩。但它没有被编译。这是我所做的:

1 我在可构建模块下创建了一个目录(“myproject/”)(我使用了“Mms/”,但其他人也有同样的问题)。
2 我在包含

的目录中创建 Android.mk

你好:

   echo "Hello from myproject"

(我在hello:和echo之间没有空行:页面编辑器添加了这些)

3 我在“Mms/”目录中运行了mm

Mms 和其他子项目已编译,但没有 myproject 的证据。

Mms 中的 Android.mk 包含的行 include $(call all-makefiles-under, $(LOCAL_PATH))

当然我最初跑的是envsetup.sh
我在这里想念什么?

【问题讨论】:

    标签: android recursion build makefile gnu


    【解决方案1】:

    在 Android NDK 中,.../docs/ANDROID-MK.html 中有一些文档。不幸的是,除了查看现有的 makefile 之外,没有太多其他文档可供查找。用于构建共享库的最小 Android.mk 可能如下所示

    # "initialize" Makefile
    LOCAL_PATH := $(call my-dir)
    include $(CLEAR_VARS)
    
    # setup some variables
    LOCAL_MODULE    := hello-jni
    LOCAL_SRC_FILES := hello-jni.c
    
    # do the build
    include $(BUILD_SHARED_LIBRARY)
    

    Android.mk 不像普通的 Makefile。您有一个样板,定义子 makefile 中需要的一些变量,然后通过包含预定义的 Android makefile 来完成工作。

    例如BUILD_SHARED_LIBRARYbuild/core/build-all.mk中定义为

    BUILD_SHARED_LIBRARY := $(BUILD_SYSTEM)/build-shared-library.mk
    

    它自己定义和检查一些make变量,然后包含$(BUILD_SYSTEM)/build-module.mk,等等。

    在 build-all.mk 中,还定义了其他变量,例如 BUILD_HOST_EXECUTABLEBUILD_STATIC_LIBRARYBUILD_EXECUTABLE,用于构建静态库或可执行文件。

    【讨论】:

    • 非常感谢您的回复。我会试试这个。 -约翰
    • 效果很好!再次感谢。
    猜你喜欢
    • 2014-08-23
    • 2012-01-05
    • 2019-08-12
    • 2022-01-17
    • 2013-06-20
    • 2015-01-26
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多