web-dev-qa-db-fra.com

"Impossible de compiler sans la fonction ou la macro isnan" lors de la compilation de géos le 14.04

À l'aide d'une procédure de création de géos sur Ubuntu 12.04, j'essaie de créer des géos sur 14.04 et j'obtiens l'erreur suivante: "Impossible de compiler sans macro ou fonction isnan" lorsque make est exécuté.

Sudo apt-get -y install build-essential

wget http://download.osgeo.org/geos/geos-3.4.2.tar.bz2

tar xvfj geos-3.4.2.tar.bz2
cd geos-3.4.2
./configure
make 

pour une raison quelconque, la macro isnan() ne semble pas être disponible le 14.04, comment puis-je le compiler?

3
monkut

J'ai eu le même problème. Pour moi, cela découle de la séquence d'étapes suivante

  • ./configurer
  • make
  • Découvrez le g ++ manquant et installez-le: Sudo aptitude install g++
  • make

Le problème est que configure avait pris des décisions en fonction des outils installés, mais c'étaient les mauvais. La solution consiste à relancer configure après l'installation de g ++.

@ user224082 Bien que Ubuntu 14.04 fournisse libgeos, il ne fournit pas les liaisons PHP. Vous devez donc toujours compiler à la main si vous en avez besoin.

2
AdamS

libgeos-3.4.2 est dans référentiel principal Ubunt pour Ubuntu 14.04. Vous n’avez donc pas besoin d’exécuter des méthodes de compilation difficiles.

libgeos-3.4.2 et ses packages nécessaires peuvent être installés avec:

Sudo apt-get install libgeos-3.4.2 libgeos-c1 libgeos-dbg libgeos-dev libgeos-doc libgeos-Ruby1.8 Ruby-geos libgeos++-dev
2
user224082

Si toutes les réponses existantes ne vous aident pas, comme ce fut mon cas, vous pouvez essayer de vous assurer que la macro est définie pendant la compilation.

Lorsque vous avez identifié l'include censé garantir que la macro peut être compilée dans mon cas : Coordinate.inl

enter image description here

dans le cas de geos-3.3.3 , la macro est définie dans platform.h

platform.h

Il suffit de remplacer la ligne 24 , par:

_#define HAVE_ISNAN 1
_

Terminé. J'espère vraiment que vous avez eu l'aide d'une réponse différente avant de choisir celle-ci, mais cela résout définitivement le problème soulevé.

1
VeRo