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 の外側のビルドに#define
frommath.h
が含まれていないのはなぜですか? コード内のインクルードをコメントアウトすると、すべて問題ありませんが、この問題が繰り返されるため、それは受け入れられません....たくさん。