У меня есть простой файл stlTest2.cpp
вроде этого:
#include <jni.h>
#include <cmath>
bool isnan (void);
В некотором коде, который я портирую, есть что-то более сложное. У меня такой вопрос. Почему это должно работать при сборке с использованием GCC вне NDK, но не с использованием NDK? Ошибка заключается в следующем:
jni/stlTest2.cpp:6: error: expected unqualified-id before 'sizeof'
jni/stlTest2.cpp:6: error: expected ')' before 'sizeof'
Непосредственной причиной этого является то, что math.h
(включенный через
) определяет isnan
как макрос . Почему сборка вне ndk не включает #define
из math.h
, но это есть? Если я закомментирую включения в код, все в порядке, но это неприемлемо, поскольку эта проблема повторяется .... много раз.