【问题标题】:Every NDK build is a full rebuild [duplicate]每个 NDK 构建都是完整的重建 [重复]
【发布时间】:2012-12-02 20:25:48
【问题描述】:

可能重复:
Prevent ndk-build from automatically cleaning module

带有 NDK 库的 Android 项目。 NDK r8c。在 Cygwin 下编译(这是一个老项目)。

一堆 C++ 和 C 文件,以及一些通过 LOCAL_LDLIBS 链接的 .a 库。

从前一段时间,我注意到每个 NDK 构建都会遍历所有源文件。即使我连续两次调用 ndk-build,在第二次尝试时也会完全重建。我可以看到 .mk 文件中没有任何效果,我调用构建的命令是 vanilla $NDKPATH/ndk-build。任何地方都没有 -B 选项。

唯一的问题是:在每次构建中,NDK 都会说以下内容:

/cygdrive/c/android-ndk-r8c/build/core/add-application.mk:128: Android NDK: WARNING:
APP_PLATFORM android-9 is larger than android:minSdkVersion 3 in
/cygdrive/d/AppPath/AndroidManifest.xml

请问这是怎么回事?我可以根据什么文件日期以某种方式查看 make 决定全部重建吗?

【问题讨论】:

    标签: android android-ndk makefile


    【解决方案1】:

    r8c 中存在一个已知错误,即使没有任何源代码更改也会导致完全重建。见this bug report

    建议的解决方法(不是我的)是将 build/core/definitions.mk 的第 289 行从

    $1: $$(__ndk_file_dir)

    $1: | $$(__ndk_file_dir)

    【讨论】:

    • 应用了补丁,成功了。为了获得更好的答案(和赞成票),您可以在此处粘贴补丁脚本。
    • 这是修复。我还建议为 make 设置 -j 标志。有关文章,请参阅 this article。简短摘要:将 <arg value="-j8"> 添加到 build.xml。
    • @glo:这与这个问题无关。如果您无法找到该问题的解决方案,请随时发布问题。
    • 连构建系统都有bug。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 2021-09-30
    • 1970-01-01
    • 2022-07-23
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    相关资源
    最近更新 更多