[Shapelib] compile error on Windows

Even Rouault even.rouault at spatialys.com
Mon Jul 10 12:33:32 EST 2017


On lundi 10 juillet 2017 14:12:53 CEST Jeff McKenna wrote:
> On 2017-07-10 1:47 PM, Jeff McKenna wrote:
> > Hi all,
> > 
> > I am in the process of upgrading from Shapelib 1.3.0 to 1.4.0 on
> > Windows; I had no problems using cmake to compile 1.4.0, however I also
> > need to compile the utilities from the /contrib directory.  As I don't
> > see how to use cmake for that directory, I modified /contrib/makefile.vc
> > 
> > and using Visual Studio 2012 I received this error:
> >          cl /Ox /MD /nologo /I..
> > 
> > /ID:\build\mapserver-buildkit-2012\shapelib-1.4.0\build\install\include
> > /ID:\build\mapserver-buildkit-2012\proj-4.9.3\src  /D_LITTLE_ENDIAN
> > -DPROJ4 /c shpcat.c shpgeo.c
> > shpcat.c
> > shpgeo.c
> > shpgeo.c(898) : error C2065: 'NAN' : undeclared identifier
> > shpgeo.c(899) : error C2065: 'NAN' : undeclared identifier
> > shpgeo.c(909) : error C2065: 'NAN' : undeclared identifier
> > shpgeo.c(910) : error C2065: 'NAN' : undeclared identifier
> > shpgeo.c(1021) : error C2065: 'NAN' : undeclared identifier
> > shpgeo.c(1022) : error C2065: 'NAN' : undeclared identifier
> > Generating Code...
> > NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
> > Studio 11.0\VC\BIN\cl.EXE"' : return code '0x2'
> > Stop.
> > 
> > 
> > Please let me know if there is another way to compile the contrib
> > utilities.  thanks,
> 
> I figured it out:  I copied the missing file /contrib/my_nan.h from the
> 1.3.0 release into my 1.4.0 contrib folder, and added the following into
> contrib/shpgeo.c
> 
>    #ifdef NAN
>    #include "my_nan.h"
>    #endif

Hi Jeff,

Should probably read #ifndef NAN, right ?

I'm not completely clear when my_nan.h disappeared from the repository. Nothing explicit in 
the changelog.

Instead of this change, can you try the following instead ?

{{{
diff -u -r1.15 shpgeo.c
--- contrib/shpgeo.c	6 Dec 2016 21:13:33 -0000	1.15
+++ contrib/shpgeo.c	10 Jul 2017 17:32:52 -0000
@@ -99,6 +99,12 @@
 
 #include "shpgeo.h"
 
+#if defined(_MSC_VER) && _MSC_VER < 1800
+#include <float.h>
+#define INFINITY (DBL_MAX + DBL_MAX)
+#define NAN (INFINITY - INFINITY)
+#endif
+
 
  /* I'm using some shorthand throughout this file
  *      R+ is a Clockwise Ring and is the positive portion of an object
}}}

Even


-- 
Spatialys - Geospatial professional services
http://www.spatialys.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/shapelib/attachments/20170710/fe361722/attachment.htm 


More information about the Shapelib mailing list