Ho un semplice file stlTest2.cpp
come questo:Corporatura problema quando si utilizza <cmath> con Android NDK
#include <jni.h>
#include <cmath>
bool isnan (void);
C'è qualcosa di più complicato in qualche codice che sto porting. La mia domanda è questa. Perché dovrebbe funzionare quando si utilizza GCC al di fuori dell'NDK, ma non con l'NDK? Ci error che dà è questo:
jni/stlTest2.cpp:6: error: expected unqualified-id before 'sizeof'
jni/stlTest2.cpp:6: error: expected ')' before 'sizeof'
Il motivo immediato di questo è che math.h
(incluso via <cmath>
) definisce isnan
come una macro. Perché la build al di fuori del ndk non include lo #define
da math.h
, ma questo è? Se commento l'include nel codice, tutto va bene, ma non è accettabile in quanto questo problema si ripete .... molto.
Perché dichiarate 'isnan' con un tipo incompatibile? –