我正在使用 arm-linux-androideabi-g++
编译器。当我尝试编译一个简单的“Hello, World!”程序编译得很好。当我通过在该代码中添加一个简单的异常处理来测试它时,它也可以工作(在添加 -fexceptions
.. 我猜它默认是禁用的)。
这是针对 Android 设备的,我只想使用 CMake,而不是 ndk-build
。
例如 - first.cpp
#include <iostream>
using namespace std;
int main()
{
try
{
}
catch (...)
{
}
return 0;
}
./arm-linux-androideadi-g++ -o first-test first.cpp -fexceptions
它工作没有问题…
问题…我正在尝试使用 CMake 文件编译该文件。
我想添加 -fexceptions
作为标志。我试过了
set (CMAKE_EXE_LINKER_FLAGS -fexceptions ) or set (CMAKE_EXE_LINKER_FLAGS "fexceptions" )
和
set ( CMAKE_C_FLAGS "fexceptions")
它仍然显示错误。
原文由 solti 发布,翻译遵循 CC BY-SA 4.0 许可协议
注意:鉴于 CMake 的演变,因为这是 2012 年编写的答案,这里的大多数建议现在已经过时/不推荐使用,并且有更好的选择。
假设您要添加这些标志(最好在常量中声明它们):
有几种方法可以添加它们:
现在我使用方法2。