我有一个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
(包括 via <cmath>
)定义isnan
为宏。为什么 ndk 之外的构建不包括#define
from math.h
,但这是?如果我注释掉代码中的包含,一切都很好,但这是不可接受的,因为这个问题会反复出现......很多。