lunedì 28 gennaio 2013

Compilare librerie esterne in Qt/QtCreator

In questo post verra' mostrato come linkare una libreria esterna al pacchetto Qt mediante l'uso di QtCreator.
La libreria di esempio e' costuita dalle Shapefile C Library, una libreria che serve per leggere i file ESRI .shp

Una volta scaricato il file tgz si spacchetta e si digita
make
make test (per controllare che la compilazione sia andata a buon fine)
make install (per installare la libreria ed i file di sviluppo)

al termine la libreria si chiamera' libshp.a e sara' posta in /usr/local/lib mentre i file di include saranno in /usr/local/include

shape.pro
---------------------------------
#-------------------------------------------------
#
# Project created by QtCreator 2013-01-28T12:49:51
#
#-------------------------------------------------
QT       += core
QT       -= gui
TARGET = shape
CONFIG   += console
CONFIG   -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
LIBS += -L/usr/local/lib -lshp
INCLUDEPATH += -I/usr/local/include
---------------------------------

per vedere se il programma funziona si puo' rubare parte del codice al programma shpinfo.c che si trova nella sottodirectory contrib del pacchetto shapelib.tgz

main.cpp
--------------------------------

#include "shapefil.h"
#include <QDebug>
#include <iostream>


............................


SHPHandle   hSHP;
int nShapeType, nEntities, nVertices, nParts, *panParts, i, iPart;
double *padVertices, adfBndsMin[4], adfBndsMax[4];
hSHP = SHPOpen("/home/luca/shp/test.shp","rb");
if( hSHP == NULL )
            {

            }
SHPGetInfo( hSHP, &nEntities, &nShapeType, adfBndsMin, adfBndsMax );
qDebug() << nShapeType;

---------------------------------

Nessun commento:

Posta un commento

Change Detection with structural similarity

L'idea di base e' quella di cercare le differenze tra le due immagini sottostanti Non e' immediatamente visibile ma ci sono dei ...