【发布时间】:2012-01-07 00:03:45
【问题描述】:
我有一个简单的文件stlTest2.cpp,如下所示:
#include <jni.h>
#include <cmath>
bool isnan (void);
在我移植的一些代码中有一些更复杂的东西。我的问题是这个。为什么在 NDK 之外使用 GCC 构建时这会起作用,但在使用 NDK 时不起作用?它给出的错误是这样的:
jni/stlTest2.cpp:6: error: expected unqualified-id before 'sizeof'
jni/stlTest2.cpp:6: error: expected ')' before 'sizeof'
直接原因是math.h(通过<cmath> 包含)将isnan 定义为宏。为什么 ndk 之外的构建不包括来自math.h 的#define,但这是?如果我注释掉代码中的包含,一切都很好,但这是不可接受的,因为这个问题会反复出现......很多。
【问题讨论】:
-
为什么用不兼容的类型声明
isnan?
标签: android c++ android-ndk cmath