Search code examples
androidandroid-ndkgeospatialgeosspatialite

SpatialLite for Android NDK Geos Configure Error


I'm trying to build the following project for Android:

http://code.google.com/p/spatialite-android/

Does anyone know why there may be errors when running ndk-build for LineIntersector.cpp?

jni/geos-3.2.2/source/algorithm/LineIntersector.cpp:223: error: expected unqualified-id before '(' token

I'm running try to compile this on a mac and I'm an NDK newbie. Here is my configure that I run in the geos root

./configure --build=i686-android-linux-gnu --host=arm-linux-eabi

The error appears to be with the ISNAN function


Solution

  • At the moment you can only build on Ubuntu. The step where you run ./configure is the issue on other platforms. I have posted the latest binaries in the download section. You could open the apk and copy the .so files.

    I was able to get geos to build on my Mac by editing /source/headers/geos/platform.h

    /* Set to 1 if you have `int64_t' type */
    /* #undef HAVE_INT64_T_64 */
    
    /* Set to 1 if `long int' is 64 bits */
    /* #undef HAVE_LONG_INT_64 */
    
    /* Set to 1 if `long long int' is 64 bits */
    /* #undef HAVE_LONG_LONG_INT_64 */
    
    /* Set to 1 if you have ieeefp.h */
    /* #undef HAVE_IEEEFP_H */
    
    /* Has finite */
    #define HAVE_FINITE 1
    
    /* Has isfinite */
    /* #undef HAVE_ISFINITE */
    
    /* Has isnan */
    #define HAVE_ISNAN 1