[Gfoss] errore compilazione GDAL 1.9

ciao,
sto cercando di compilare le GDAL 1.9 da sorgente (su debian
unstable) ma ottengo degli errori.

Ecco il configure:
$ ./configure --with-spatialite=/usr/local

che restituisce:

======================================================
GDAL is now configured for i686-pc-linux-gnu

  Installation directory: /usr/local
  C compiler: gcc -g -O2
  C++ compiler: g++ -g -O2
  LIBTOOL support: yes
  LIBZ support: external
  LIBLZMA support: no
  GRASS support: no
  CFITSIO support: no
  PCRaster support: internal
  LIBPNG support: external
  GTA support: no
  LIBTIFF support: internal (BigTIFF=yes)
  LIBGEOTIFF support: internal
  LIBJPEG support: external
  8/12 bit JPEG TIFF: no
  LIBGIF support: external
  OGDI support: no
  HDF4 support: yes
  HDF5 support: yes
  NetCDF support: yes
  Kakadu support: no
  JasPer support: yes (GeoJP2=yes)
  OpenJPEG support: no
  ECW support: no
  MrSID support: no
  MrSID/MG4 Lidar support: no
  MSG support: no
  GRIB support: yes
  EPSILON support: no
  WebP support: no
  cURL support (wms/wcs/...):yes
  PostgreSQL support: yes
  MySQL support: no
  Ingres support: no
  Xerces-C support: yes
  NAS support: yes
  Expat support: yes
  Google libkml support: no
  ODBC support: yes
  PGeo support: yes
  FGDB support: no
  MDB support: no
  PCIDSK support: internal
  OCI support: no
  GEORASTER support: no
  SDE support: no
  Rasdaman support: no
  DODS support: no
  SQLite support: yes
  SpatiaLite support: yes
  DWGdirect support no
  INFORMIX DataBlade support:no
  GEOS support: yes
  VFK support: yes
  Poppler support: no
  Podofo support: no
  OpenCL support: no
  Armadillo support: no
  FreeXL support: yes
  SWIG Bindings: no
  Statically link PROJ.4: no
  enable OGR building: yes
  enable pthread support: yes
  enable POSIX iconv support:yes
  hide internal symbols: no

mentre il make si interrompe con questo messaggio:

======================================================
libtool: compile: g++ -g -O2 -Wall -I/home/sit/src/gdal/port
-I/home/sit/src/gdal/gcore -I/home/sit/src/gdal/alg
-I/home/sit/src/gdal/ogr -I/home/sit/src/gdal/ogr/ogrsf_frmts
-I/home/sit/src/gdal/frmts -DOGR_ENABLED -I/home/sit/src/gdal/port -c
ogr2ogr.cpp -o ogr2ogr.o >/dev/null 2>&1
libtool: compile: g++ -g -O2 -Wall -I/home/sit/src/gdal/port
-I/home/sit/src/gdal/gcore -I/home/sit/src/gdal/alg
-I/home/sit/src/gdal/ogr -I/home/sit/src/gdal/ogr/ogrsf_frmts
-I/home/sit/src/gdal/frmts -DOGR_ENABLED -I/home/sit/src/gdal/port -c
gdalbuildvrt.cpp -o gdalbuildvrt.o >/dev/null 2>&1
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_open_v2'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_bind_blob'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_column_blob'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_column_type'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_column_name'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_bind_text'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_exec'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_column_double'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_reset'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_get_table'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_vfs_find'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_column_count'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_last_insert_rowid'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_errmsg'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_column_int'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_bind_double'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_column_decltype'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_prepare_v2'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_finalize'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_free_table'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_free'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_bind_int'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_vfs_register'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_vfs_unregister'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_libversion_number'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_column_text'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_close'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to
`SPLite3_column_bytes'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_step'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_bind_null'
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_prepare'
collect2: ld returned 1 exit status
make[1]: *** [gdaladdo] Error 1
make[1]: Leaving directory `/home/sit/src/gdal/apps'
make: *** [apps-target] Error 2

Qualcuno ha qualche idea in merito?

ciao e grazie per qualsiasi aiuto
flavio

Ciao Flavio,

sembra un problema legato alla versione di Spatialite (recentemente
aggiornato alla 3.0). Dovresti verificare la compatibilità tra versioni
delle librerie.

Io ho compilato GDAL 1.9 beta2 prima di Natale con Spatialite 2.3 ed è
andato tutto ok, poi non ho più avuto modo di lavorarci per cui non so
dirti di più, mi spiace.

Buon lavoro

Sig

Il giorno lun, 09/01/2012 alle 15.04 +0100, flavio rigolon ha scritto:

ciao,
sto cercando di compilare le GDAL 1.9 da sorgente (su debian
unstable) ma ottengo degli errori.

Ecco il configure:
$ ./configure --with-spatialite=/usr/local

_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

On Mon, 9 Jan 2012 15:04:24 +0100, flavio rigolon wrote

ciao,
sto cercando di compilare le GDAL 1.9 da sorgente (su debian
unstable) ma ottengo degli errori.

Ecco il configure:
$ ./configure --with-spatialite=/usr/local

che restituisce:
.....
/home/sit/src/gdal/.libs/libgdal.so: undefined reference to `SPLite3_prepare'

Qualcuno ha qualche idea in merito?

Ciao Flavio,

ogni volta che ti trovi qualche simbolo "SPLite3_xxx" non risolto
significa che stai usando una libspatialite che e' stata
ottenuta a partire dai sorgenti "amalgamation" (quelli che
contengono una copia private interna di SQLite).
l'errore ti viene fuori semplicemente perche' poi invece
di includere l'header-file "privato" installato da libspatialite:
#include <spatialite/sqlite3.h>
stai cercando di utilizzare quello di libsqlite "normale":
#include "sqlite3.h"

N.B.: su Linux usare l'amalgamation non e' una gran bella
idea; su Windows serve per facilitare la build e semplificare
la distribuzione, ma su Linux sarebbe meglio evitare del tutto
di utilizzarla, visto che comunque e' disponibile una libsqlite
di sistema.

Se proprio vuoi utilizzare la spatialite-amalgamation,
GDAL e' in grado di supportarla; ma in questo caso (visto
che non e' il default atteso), allora devi settare un
apposito flag per utilizzare gli header-files "privati"
che l'amalgamation richiede:

export "CFLAGS=-DSPATIALITE_AMALGAMATION"
export "CXXFLAGS=-DSPATIALITE_AMALGAMATION"
./configure
make

vedrai che poi ti va tutto magicamente a posto

ciao Sandro

grazie Luca per la risposta, e grazie mille Sandro:

export "CFLAGS=-DSPATIALITE_AMALGAMATION"
export "CXXFLAGS=-DSPATIALITE_AMALGAMATION"
./configure
make

vedrai che poi ti va tutto magicamente a posto

tutto e' andato magicamente a posto :slight_smile:

flavio

On Mon, 9 Jan 2012 17:05:43 +0100, flavio rigolon wrote

> export "CFLAGS=-DSPATIALITE_AMALGAMATION"
> export "CXXFLAGS=-DSPATIALITE_AMALGAMATION"
> ./configure
> make

tutto e' andato magicamente a posto :slight_smile:

N.B.: usando pkg-config tutti questi micro-dettagli diventano
assolutamente trasparenti, e ./configure si risolve tutte
queste quisquilie e pinzillacchere da solo senza dovere
specificare nessun parametro aggiuntivo.

... ma purtroppo il ./configure di GDAL non supporta affatto
pkg-config (credo che sia una loro precisa scelta) :frowning:

ciao Sandro