Android CMake build默认添加no-exceptions和no-rtti
Android CMake build adding no-exceptions and no-rtti by default
我正在尝试转换现有的Android。基于mk的构建到CMake,我很难构建异常和rtti的CPP代码。生成的cpp build命令默认包含-fno-exceptions
和-fno-rtti
。将它们添加为ANDROID_CPP_FEATURES
或cppFlags
只会将它们附加到默认选项之后的构建命令中,并且构建仍然失败。
我已经搜索了相当多,除了关于Android上的CMake的几个页面,我得到的大多是旧的Android。Mk搜索结果。
在CMakeLists.txt文件中没有什么特别的,没有什么可以添加这些选项。
下面没有注释的选项不起作用。
build.gradle:
externalNativeBuild {
cmake {
arguments '-DANDROID_TOOLCHAIN=gcc',
'-DANDROID_PLATFORM=android-19',
// '-DANDROID_STL_FORCE_FEATURES=ON',
'-DANDROID_STL=gnustl_static'
//'-DANDROID_CPP_FEATURES=rtti'
//'-DANDROID_CPP_FEATURES=exceptions',
cppFlags "-fexceptions -frtti"
targets 'library2'
}
}
构建命令中的选项:
<removed content> -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -fno-exceptions -fno-rtti -frtti -fexceptions -frtti -O2 -DNDEBUG -fPIC -MD -MT <additional content>
使用NDK工具链r13b,我在gradle中使用这种组合。通过我的部分是重复-DANDROID_CPP_FEATURES
覆盖自己,你需要一个空格,而不是exceptions
和rtti
之间的逗号。
externalNativeBuild {
cmake {
cppFlags '-std=c++11'
arguments '-DANDROID_TOOLCHAIN=clang',
'-DANDROID_PLATFORM=android-19',
'-DANDROID_STL=gnustl_static',
'-DANDROID_ARM_NEON=TRUE',
'-DANDROID_CPP_FEATURES=exceptions rtti'
}
}
似乎cppFlags启用了异常和rtti,即使所有四个选项都在命令行上。我看到一个不同的错误
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- c++20[[no.unique_address]]中的新功能是什么
- 以线程安全的方式调用"QQuickPaintedItem::updateImage(const QImage&image)"(no QThread)
- "no matching function for call to 'Vector::Vector'"错误
- Android NDK clang 编译器错误在 Windows 上显示'No such file or directory'
- 处理"no operator found"
- 我在 ifstream input_file(文件名)行中收到错误"no matching function to call";
- 如何解决"no Qt platform plugin could be initialized"问题?
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- 为什么当我在 std::string 中打开文件名的 fstream 时出现"no matching function"错误?
- 已解决 - C++ 的崇高文本中的"fatal error: opencv: no such file or directory"
- do while 循环中的 if 语句以 yes 或 no 结尾
- 从 TVector2 类派生复杂类:"No matching function for call to Complex::Complex()"
- 错误消息:使用"string* +="后"no match for 'operator+='"
- Eulers 项目问题 no 345 听不懂几行代码
- "No-Const Pointer to Const "调用功能
- 如何在 c++ 中将 s1 和 s2 与 no if 语句进行比较
- "No such file or directory" C++标头问题
- Android CMake build默认添加no-exceptions和no-rtti