[Gfoss] QGIS build Win32+MinGW: UPDATE

Alessandro Furieri a.furieri a lqt.it
Ven 12 Dic 2008 11:09:24 CET


Suppongo che interessi soprattutto a Marco Pasetti, ma visto
che non ho la sua e-mail personale scrivo a tutta la lista
(chissà, magari può servire anche a qualcun'altro ...)

Ho appena terminato la build di QGIS 0.11.0 su Win32+MinGW
seguendo alla lettera le *FAVOLOSE* istruzioni pubblicate
da Marco su:
http://www.webalice.it/marco.pasetti/qgis+grass/BuildFromSource.html

Dato che le istruzioni di Marco risalgono al 15 Luglio 2008,
ovviamente ho trovato qualche nuovo intoppo, visto che nel
frattempo sono stati rilasciati nuovi aggiornamenti etc;
ecco i punti critici ed i "rattoppi" che ho adottato
(applicando le varie patches trovate su NABBLE etc):



Step 14 - GEOS
===========================================================
Marco usava la 3.0.0; nel frattempo sono state rilasciate
sia la 3.0.2 che 3.0.3; prudenzialmente ho continuato ad
usare la 3.0.0
Il problema è che con l'ultimo aggiornamento di MinGW
[ottobre 2008] non si riesce proprio a compilare nessuna
versione di GEOS; vswprintf non è compatibile con STRICT_ANSI
Alla fine ho 'resuscitato temporaneamente' la precedente
versione di MinGW e sono riuscito a fare correttamente
la build per tutte le versioni di GEOS



Step 17 - PostgreSQL
===========================================================
Marco usava la 8.3.1 [obsoleta e non più disponibile];
broken-link nella pagina html

io ho usato la 8.3.4, ma ho incontrato un paio di errori
bloccanti, che ho aggirato come segue:

postgresql-8.3.4/src/include/libpq/libpq-be.h
---------------------------------------------
riga 48 e seguenti; occorre includere <ntdef.h>

#ifdef ENABLE_SSPI
#define SECURITY_WIN32
#include <ntdef.h>
#include <security.h>
#undef SECURITY_WIN32

postgresql-8.3.4/src/interfaces/libpq/libpq-int.h
-------------------------------------------------
riga 55 e seguenti; anche qui occorre includere
<ntdef.h>, esattamente come in libpq-be.h




Step 18 - SQLite
===========================================================
Marco usava la 3.5.9 [obsoleta]

io ho usato la 3.6.2.2; tutto fila liscio come l'olio



Step 28 - SIP
===========================================================
Marco usava la 4.7.6 [obsoleta e non più disponibile];
broken-link nella pagina html

io ho usato la 4.7.9; tutto fila liscio come l'olio



Step 29 - PyQT
===========================================================
Marco usava la 4.4.2 [obsoleta e non più disponibile];
broken-link nella pagina html

io ho usato la 4.4.4; ma ho incontrato un errore bloccante,
che ho aggirato come segue:

Qt/4.4.0/src/corelib/arch/qatomic_windows.h
-------------------------------------------
riga 390 e seguenti: occorre modificare tutto il blocco delle
dichiarazioni dei prototipi-funzione:

#ifndef __INTERLOCKED_DECLARED
#define __INTERLOCKED_DECLARED
extern "C" {
    __declspec(dllimport) long __stdcall InterlockedCompareExchange(long 
*, long, long);
    __declspec(dllimport) long __stdcall InterlockedIncrement(long *);
    __declspec(dllimport) long __stdcall InterlockedDecrement(long *);
    __declspec(dllimport) long __stdcall InterlockedExchange(long *, long);
    __declspec(dllimport) long __stdcall InterlockedExchangeAdd(long *, 
long);
}
#endif



Step 31 - QuantumGIS
===========================================================
Sia io che Marco abbiamo usato la 0.11.0
tuttavia SIP nel frattempo è cambiato, quindi ora saltano
fuori un paio di errori bloccanti, che ho aggirato così:

qgis_0.11.0/python/core/qgsgeometry.sip
---------------------------------------
spostare la riga 55 subito dopo la riga 16
typedef unsigned int size_t;
deve essere esterno alla classe, non interno


qgis_0.11.0/python/core/qgsfeature.sip
--------------------------------------
eliminare la riga 11
typedef unsigned int size_t;




ciao, Sandro Furieri


Maggiori informazioni sulla lista Gfoss