gpt4 book ai didi

c++ - 如何通过 Gradle 将链接器标志传递给 Android Studio 中的 cmake

转载 作者:搜寻专家 更新时间:2023-10-31 02:09:51 27 4
gpt4 key购买 nike

我正在尝试在支持 C++ 的 Android Studio 中创建一个简单的测试应用程序。我还需要将一些额外的链接器标志传递给 native 构建。在旧的 Android.mk 构建格式中,这非常简单并且有文档记录。但是,Android Studio 现在默认使用 cmake 作为原生库,我不清楚如何指定要传递给 NDK 的额外链接器标志。

我试图添加的特定标志是 -fsanitize=address 以启用 ASAN。通过将此标志添加到 CMake 中的 cppFlags 属性,我已经能够将此标志传递给编译器,如下所示。在 gradle 文件中是否有类似的方法来传递链接器标志?

externalNativeBuild {
cmake {
cppFlags "-std=c++11 -frtti -fexceptions -fsanitize=address"
}
}

最佳答案

你可以 enable cmake 的详细输出以检查使用了哪些实际链接器标志,但通常所有 cppFlags 都“按原样”传递到链接阶段。

对我来说,生成*.so 文件的命令有这个-fsanitize=address

externalNativeBuild 传递链接器特定参数的标准方法是使用 -Wl,cFlagscppFlags,例如

externalNativeBuild {
cmake {
cFlags "-Wl,--fix-cortex-a8"
}
}

关于c++ - 如何通过 Gradle 将链接器标志传递给 Android Studio 中的 cmake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46085046/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com