首页 > 后端开发 > C++ > 如何从 NDK Gradle DSL 中的 LOCAL_SRC_FILES 中排除文件?

如何从 NDK Gradle DSL 中的 LOCAL_SRC_FILES 中排除文件?

DDD
发布: 2024-11-27 06:57:10
原创
643 人浏览过

How Can I Exclude Files from LOCAL_SRC_FILES in the NDK Gradle DSL?

使用排除模式绕过 NDK DSL 中的 LOCAL_SRC_FILES

问题:

可以在 NDK DSL 块中定义 LOCAL_SRC_FILES Gradle?

原始答案(已弃用):

目前,Gradle 插件不支持此功能。考虑使用传统的 Android.mk 文件。

更新的答案:

随着 Gradle 插件 0.4.0 的发布,现在可以使用排除模式实现这一点。

android.sources {
    main {
        jni.source {
            srcDirs = ["~/srcs/jni"]
            exclude "**/win.cpp"
        }
    }
}
登录后复制

静态替代解决方案库:

要在不使用 LOCAL_SRC_FILES 的情况下从 NDK 构建中排除文件,可以采取不同的方法。

  1. 创建包含排除文件的静态库。
  2. 修改build.gradle以依赖静态库:
model {
    android.ndk {
        moduleName = "hello-jni"
        abiFilters += "$appAbi".toString()
        ldFlags += "$staticLib".toString()
        ldLibs += "log"
        cppFlags += "-std=c++11"
    }
}
登录后复制
  1. 在 Android.mk 中定义静态库:
LOCAL_MODULE    := staticLib
LOCAL_SRC_FILES := HelloJni.cpp

LOCAL_CPPFLAGS += -std=c++11

include $(BUILD_STATIC_LIBRARY)
登录后复制

此方法有效地从常规 NDK 构建中排除指定文件,并且确保必要的符号可用于调试。

注意:请记住在修改排除设置后触发“构建/清理”。

以上是如何从 NDK Gradle DSL 中的 LOCAL_SRC_FILES 中排除文件?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板