Gracias Mauricio, ya lo probé. Antes ni siquiera reconocía los include. Ahora al menos los reconoce, pero algo que en principio pensaba que no revestía mayor complicación, se me está torciendo bastante. Con python, no tengo problema en crear una aplicación, pero con QT veo que no es trivial, a no ser que se me esté escapando algo. También he visto que en la documentación 'oficial', la aplicación c++ la construyen con VC, pero son páginas y páginas de paquetes, variables y ficheros que hay que modificar. No me puedo creer que sea tan fácil en python y tan complicado en C++.

Un saludo,
Rafa


El 05/11/2010 13:48, Mauricio Pazos escribió:
On Friday 05 November 2010 09:49:46 am [email protected] wrote:
> Buenos días,
> estoy desarrollando una aplicación c++ de QGis en windows xp con QT, y
> este es mi fichero .pro (es un poco raro pero es que he probado de todo):
> TEMPLATE = app
>
> QT += core \
>
> gui \
>
> sql \
>
> xml
>
> INCLUDEPATH += "C:/Archivos de programa/Quantum GIS
> Tethys/apps/qgis/include" \
>
> "C:/Archivos de programa/Quantum GIS Tethys/include" \
>
> "C:/Archivos de programa/Quantum GIS Tethys/apps/gdal-16/include" \
>
> "C:/Archivos de programa/Quantum GIS Tethys/apps/Python25/include" \
>
> "C:/Archivos de programa/Quantum GIS
> Tethys/apps/grass/grass-6.4.0svn/include" \
>
> "C:/Archivos de programa/Quantum GIS
> Tethys/apps/Python25/Lib/site-packages/win32/include" \
>
> win32:LIBS += "C:/Archivos de programa/Quantum GIS
> Tethys/apps/qgis/lib/qgis_core.lib" \
>
> "C:/Archivos de programa/Quantum GIS Tethys/apps/qgis/lib/qgis_gui.lib" \
>
> -L "C:/Archivos de programa/Quantum GIS Tethys/bin" \
>
> -L "C:/Archivos de programa/Quantum GIS Tethys/apps/gdal-16" \
>
> -L "C:/Archivos de programa/Quantum GIS Tethys/apps/msys"
>
> SOURCES += main.cpp\
>
> mainwindow.cpp
>
> HEADERS += mainwindow.h
>
> FORMS += mainwindow.ui
>
> DEFINES += GUI_EXPORT= CORE_EXPORT=
>
>
> pero al compilar, tengo esta lista de errores:
> debug/main.o: In function `Z5qMainiPPc':
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:32: undefined
> reference to `QgsApplication::QgsApplication(int&, char**, bool)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:39: undefined
> reference to `QgsProviderRegistry::instance(QString)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:42: undefined
> reference to `QgsVectorLayer::QgsVectorLayer(QString, QString, QString,
> bool)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:45: undefined
> reference to `QgsVectorLayer::geometryType() const'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:45: undefined
> reference to
> `QgsSingleSymbolRenderer::QgsSingleSymbolRenderer(QGis::GeometryType)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:47: undefined
> reference to `QgsVectorLayer::setRenderer(QgsRenderer*)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:48: undefined
> reference to `QgsMapLayer::isValid()'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:57: undefined
> reference to `QgsMapLayerRegistry::instance()'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:57: undefined
> reference to `QgsMapLayerRegistry::addMapLayer(QgsMapLayer*, bool)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:62: undefined
> reference to `QgsMapCanvas::QgsMapCanvas(QWidget*, char const*)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:63: undefined
> reference to `QgsMapLayer::extent() const'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:63: undefined
> reference to `QgsMapCanvas::setExtent(QgsRectangle const&)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:64: undefined
> reference to `QgsMapCanvas::enableAntiAliasing(bool)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:66: undefined
> reference to `QgsMapCanvas::freeze(bool)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:68: undefined
> reference to `QgsMapCanvas::setLayerSet(QList<QgsMapCanvasLayer>&)'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:70: undefined
> reference to `QgsMapCanvas::refresh()'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:73: undefined
> reference to `QgsApplication::~QgsApplication()'
>
> C:\rafa\QT\miApli-build-desktop/../miApli/main.cpp:73: undefined
> reference to `QgsApplication::~QgsApplication()'
>
> c:/qt/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../libmingwex.a(pformat.o):p
>format.c:(.text+0x166d): undefined reference to `_get_output_format'
>
> collect2: ld returned 1 exit status
>
> mingw32-make[1]: *** [debug\miApli.exe] Error 1
>
> mingw32-make: *** [debug] Error 2
>
> The process "C:/Qt/mingw/bin/mingw32-make.exe" exited with code %2.
>
> Error while building project miApli (target: Desktop)
>
> When executing build step 'Make'
>
>
> Evidentemente es un problema de rutas y/o dependencias, pero ... ¿puede
> alguien darme más pistas?. Si lo compilo en linux ubuntu (obviamente
> cambiando el .pro), no tengo problemas y lo compila bien.
> En windows no he utilizado el paquete de Osgeo, tengo QT instalado por
> un lado y QGis por otro, en cualquier caso, no parece quejarse de las
> librería QT, sino de las librerías QGis.
>
> Muchas gracias por la ayuda,
> Rafa
Una corazonada, "/" en linux versus "\" windows. Probablemente el make funciona bien en linux porque los paths están bien formado para él, pero al ejecutar el make en windows las "/" de linux, no son interpretados como path correctos en windows.


Espero te sirva.


un saludo
--
Mauricio Pazos
www.axios.es

_______________________________________________
Spanish mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/spanish

Responder a