matplotlib / matplotlib/basemap
Cygwin install error: error: 'isnan' was not declared in this scope
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 817
- Forks
- 395
- PR merge metrics
- No merged PRs in 30d
Description
Dear all,
after struggling with the installation of basemap I decided to post here. I have tried a couple of different 'hacks' found in google but none worked.
Full error:
> libtool: compile: g++ -DHAVE_CONFIG_H -I. -I../../../include -I../../../include/geos -I../../../include -DGEOS_INLINE -pedantic -Wall -ansi -Wno-long-long -ffloat-store -g -O2 -MT IndexedPointInAreaLocator.lo -MD -MP -MF .deps/IndexedPointInAreaLocator.Tpo -c IndexedPointInAreaLocator.cpp -DDLL_EXPORT -DPIC -o .libs/IndexedPointInAreaLocator.o
> In file included from ../../../include/geos/geom/Geometry.h:26:0,
> from IndexedPointInAreaLocator.cpp:18:
> ../../../include/geos/geom/Coordinate.inl: In member function 'bool geos::geom::Coordinate::isNull() const':
> ../../../include/geos/platform.h:88:27: error: 'isnan' was not declared in this scope
> # define ISNAN(x) (isnan(x))
> ^
> ../../../include/geos/geom/Coordinate.inl:39:10: note: in expansion of macro 'ISNAN'
> return (ISNAN(x) && ISNAN(y) && ISNAN(z));
> ^
> ../../../include/geos/platform.h:88:27: note: suggested alternative:
> # define ISNAN(x) (isnan(x))
> ^
> ../../../include/geos/geom/Coordinate.inl:39:10: note: in expansion of macro 'ISNAN'
> return (ISNAN(x) && ISNAN(y) && ISNAN(z));
> ^
> In file included from ../../../include/geos/geom/Coordinate.inl:23:0,
> from ../../../include/geos/geom/Coordinate.h:161,
> from ../../../include/geos/geom/Envelope.h:26,
> from ../../../include/geos/geom/Geometry.h:28,
> from IndexedPointInAreaLocator.cpp:18:
> /usr/lib/gcc/x86_64-pc-cygwin/5.4.0/include/c++/cmath:862:5: note: 'std::isnan'
> isnan(_Tp __f)
> ^
> In file included from ../../../include/geos/geom/Geometry.h:26:0,
> from IndexedPointInAreaLocator.cpp:18:
> ../../../include/geos/geom/Coordinate.inl: In member function 'bool geos::geom::Coordinate::equals3D(const geos::geom::Coordinate&) const':
> ../../../include/geos/platform.h:88:27: error: 'isnan' was not declared in this scope
> # define ISNAN(x) (isnan(x))
> ^
> ../../../include/geos/geom/Coordinate.inl:83:21: note: in expansion of macro 'ISNAN'
> ((z == other.z)||(ISNAN(z) && ISNAN(other.z)));
> ^
> ../../../include/geos/platform.h:88:27: note: suggested alternative:
> # define ISNAN(x) (isnan(x))
> ^
> ../../../include/geos/geom/Coordinate.inl:83:21: note: in expansion of macro 'ISNAN'
> ((z == other.z)||(ISNAN(z) && ISNAN(other.z)));
> ^
> In file included from ../../../include/geos/geom/Coordinate.inl:23:0,
> from ../../../include/geos/geom/Coordinate.h:161,
> from ../../../include/geos/geom/Envelope.h:26,
> from ../../../include/geos/geom/Geometry.h:28,
> from IndexedPointInAreaLocator.cpp:18:
> /usr/lib/gcc/x86_64-pc-cygwin/5.4.0/include/c++/cmath:862:5: note: 'std::isnan'
> isnan(_Tp __f)
> ^
> make[4]: **\* [Makefile:373: IndexedPointInAreaLocator.lo] Error 1
> make[4]: Leaving directory '/tmp/basemap/geos-3.3.3/src/algorithm/locate'
> make[3]: **\* [Makefile:392: all-recursive] Error 1
> make[3]: Leaving directory '/tmp/basemap/geos-3.3.3/src/algorithm/locate'
> make[2]: **\* [Makefile:444: all-recursive] Error 1
> make[2]: Leaving directory '/tmp/basemap/geos-3.3.3/src/algorithm'
> make[1]: **\* [Makefile:476: all-recursive] Error 1
> make[1]: Leaving directory '/tmp/basemap/geos-3.3.3/src'
> make: **\* [Makefile:368: all-recursive] Error 1
I am installing it on cygwin 64 bits.
I have also tried to use cygwin's binaries but they give errors on a tested script.
I am not sure of any additional relevant information.
Best regards,
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the Cygwin 64-bit installation and inspect the failing build in geos-3.3.3/src/algorithm/locate/IndexedPointInAreaLocator.cpp. Read ../../../include/geos/platform.h and ../../../include/geos/geom/Coordinate.inl around the ISNAN usage, then verify that the basemap installation completes and the reported script can run.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- build-system, operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100