【发布时间】:2020-03-12 15:02:18
【问题描述】:
我正在使用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")
它仍然显示错误。
【问题讨论】:
-
现在我遇到了同样的问题,我正在尝试不同的事情。稍等一下,我会发布答案。对于编译标志,有一个不干净但简单的方法:add_definitions("-truc")
-
关于这个问题的最新讨论(特别是如果您使用 CMake 3.x 或更高版本):What is the modern method for setting general compile flags in CMake?。
-
如果您想要的链接标志旨在配置 rpath 然后查看特定的 CMake rpath 命令gitlab.kitware.com/cmake/community/wikis/doc/cmake/…