如何通过Gradle将链接标志传递到Android Studio中的CMAKE
How to pass linker flags to cmake in Android Studio via Gradle
我正在尝试在具有C 支持的Android Studio中创建一个简单的测试应用程序。我还需要将一些额外的链接标志传递给本机构建。在较旧的android.mk构建格式中,这相当简单且有记录。但是,Android Studio现在默认用于将CMAKE用于本机库,并且尚不清楚如何指定要传递给NDK的额外链接标志。
我要添加的特定标志是-fsanitize=address
,以启用Asan。如下所示,我能够将此标志传递给编译器中的CPPFLAGS属性。是否有类似的方法可以通过gradle文件中的链接标志?
externalNativeBuild {
cmake {
cppFlags "-std=c++11 -frtti -fexceptions -fsanitize=address"
}
}
您可以启用cmake的详细输出来检查使用了哪些实际链接标志,但是通常所有 cppflags 被传递给链接阶段。
对我来说,生产*.so
文件的命令具有此-fsanitize=address
。
通过 -Wl,
和 CC_4或 cppFlags
,通过的特定于链接器参数的标准方法,例如。
externalNativeBuild {
cmake {
cFlags "-Wl,--fix-cortex-a8"
}
}
我认为您不需要设置任何LD标志以供ASAN在应用程序/本机代码中工作。只需运行ASAN_DEVICE_SETUP(位于SDK/NDK工具链中),它将将所需的Asan Lib推向设备。请参阅"运行" @部分https://github.com/google/sanitizers/wiki/addresssanitizeronandroid
相关文章:
- Android Studio 中带有静态库的原生C++代码
- 如何在 Android Studio 4 中编译 C/C++ 原生代码
- Android Studio:如何在build.gradle中定义自定义宏(针对不同的构建变体),并让原生C / C++
- 更新后的Android Studio现在需要Clang,不再链接到GCC的库
- 如果我的手机是 ARMv8,为什么 Android Studio 会C++编译为 ARMv7?
- 将图像从 Android Studio 发送到 CPP
- 在 Android Studio 中使用 C++ 共享对象时出现问题
- CMake:Android Studio 原生活动项目无法在项目根目录之外找到第三方库
- 如何在Android Studio中将C++文件正确链接到现有的Android项目?
- 在 Android Studio 中添加 C/C++ 的包含路径
- Android Studio-在现有的旧项目中启用本机C++调试(card.io Android Source)
- 为什么只有一个库的链接器错误'multiple definitions'?在 Android Studio 中使用 CMake (3.4.1)
- Android Studio 3.5.1 和 NDK 20.0 找不到 cstdint
- 如何使用Java Native Interface在C++中导入python库-Android Studio
- Android Studio External Native Build 预编译标头
- Android Studio TextView Init C++
- 向 cppFlags 添加"-O0"无法禁用 Android Studio 中的 clang 编译优化
- 如何将.cpp C++原生库导入 Android Studio
- Android Studio 链接器命令在包含 Boost 库时失败
- Android Studio:不一致的自动包含C++ stdlib 标头