Beruflich Dokumente
Kultur Dokumente
PRCTICAS
Licencia
BIBLIOTECAS Y COMPONENTES.
LA BIBLIOTECA QWT
ndice de contenido
1.Objetivos.............................................................................................................................................2
2.Material necesario...............................................................................................................................2
3.Introduccin........................................................................................................................................2
4.Puesta a punto de la biblioteca.............................................................................................................3
4.1Obtencin de los fuentes de QWT................................................................................................3
4.1.1Profesional: desde un repositorio (no usar esta)................................................................3
4.1.2Fcil: desde un empaquetado del repositorio (usaremos sta)...............................................4
4.2Construccin e instalacin de la biblioteca...................................................................................4
4.3Probando un ejemplo....................................................................................................................4
5.Actividad bsica: Probando a construir un ejemplo con Qt Creator.....................................................5
6.Actividad extra: Intentar crear un proyecto nuevo...............................................................................5
7.Anexos.................................................................................................................................................6
7.1De cmo se construy la biblioteca en el curso 2010/2011..........................................................6
7.2Del ejemplo de uso del ao 2010/2011.........................................................................................7
1.OBJETIVOS
2.MATERIAL NECESARIO
Ordenador PC compatible.
Sistema operativo Microsoft Windows (opcionalmente se puede usar Linux o Mac OS X).
Acceso a Internet.
3.INTRODUCCIN
Esta prctica pretende ilustrar la experiencia de incorporar cdigo de terceras partes en nuestras
aplicaciones.
Se recrear una situacin tpica de intento de uso de software de terceros, vindose contratiempos
y cmo intentar superarlos. Vamos, como la vida misma.
Para este propsito, se ha elegido el reconocido proyecto de cdigo abierto QWT
(http://qwt.sourceforge.net/ ), que es una biblioteca multiplataforma que ofrece widgets para aplica-
ciones tcnicas (grficas, diales, etc.). El proyecto QWT es empleado por muchas aplicaciones comer ciales para la representacin de datos.
Como ilustracin, la siguiente figura muestra uno de los widgets en funcionamiento:
El proyecto genera una biblioteca estndar para distintos sistemas operativos destino, pues est
pensada para poder usarla desde cualquier entorno de desarrollo que pueda emplear bibliotecas estndar. Por ejemplo, se puede usar en entornos como Embarcadero/Borland Builder, Qt, Microsoft Visual
Basic, Microsoft Visual C++, National Instruments Labview, etc. Esta grandes posibilidades se logran
gracias a que el proyecto QWT se ha desarrollado con Qt (vaya casualidad).
El proyecto viene con ejemplos de uso de la biblioteca. Algunos de los ejemplos estn escritos en
Qt, as que son perfectos para poder ilustrar tambin su aprovechamiento.
Con algo de suerte, es posible encontrar versiones del repositorio preeempaquetadas o precompilados para plataformas especficas. Dichos empaquetados suelen venir en archivos comprimidos (.zip,
.tar, etc.) o como instalables. Tambin es posible que se empaqueten versiones de la documentacin.
Estamos de suerte: QWT est empaquetado en la pgina
http://sourceforge.net/projects/qwt/files/. Deberemos descargar la QWT 6.1.
del
proyecto
en
Extraer los archivos de la carpeta EN UN DIRECTORIO QUE NO TENGA SIMBOLOS RAROS (espacios, , , ...), por ejemplo C:\pp . Si se extraer con la utilidad estndar de Window,
tener la precaucin de que no duplique la carpeta raz.
Construir el proyecto. Por defecto, tambin se construyen los ejemplos. Tardar bastantes mi nutos (unos 20 minutos en Windows y unos 5 minutos en Linux).
Instalar las bibliotecas segun el archivo INSTALL. Bsicamente, copiar las bibliotecas y los
manuales a C:\Qwt-6???
4.3PROBANDO UN EJEMPLO
El proyecto est configurado para crear bibliotecas dinmicas, as que los ejecutables de los ejem plos necesitan encontrar estas bibliotecas para funcionar.
Para hacer localizables las bibliotecas, podemos:
O a lo rpido/cutre: copiar los archivos libqwt.a, libqwtd.a, qwt.dll y qwtd.dll al directorio C:\WINDOWS
O modificando la variable PATH de bsqueda de ejecutables y bibliotecas. En el terminal en que se ha compilado, escribir: PATH=%PATH%;C:\Qwt-6???\lib
Para probar algn ejemplo, DESDE DENTRO DEL TERMINAL, nos moveremos al directorio
"bin\examples" de QWT y ejecutaremos los archivos (no se podrn ejecutar los programas desde el
explorador de Windows).
La siguiente imagen corresponde al ejemplo osciloscope.exe.
Nos debemos mantener en el terminal porque, precisamente, est configurado para encontrar las bibliotecas dinmicas que forman Qt.
#setahelpervariablewiththerootpathofQwt
QWT_ROOT=qwt5.2
#includea.priwiththeconfigurationofQwt
include($${QWT_ROOT}/qwtconfig.pri)
#searchpathforheaderfiles(.h)
INCLUDEPATH+=$${QWT_ROOT}/src
#toresolvedependencies,alsosearchhere
DEPENDPATH+=$${QWT_ROOT}/src
win32{
DEFINES+=QT_DLLQWT_DLL
LIBS+=L$${QWT_ROOT}/liblqwtd5
}
unix{
LIBS+=L$${QWT_ROOT}/liblqwtd
}
7.ANEXOS
Abrir qwt.pro
(Echarle un vistazo por dentro sin asustarse, se trata de una manera de meter muchos pro yectos dentro de uno solo).
Esperar un buen rato (en Windows unos 15 minutos, en Linux unos 5 minutos).
Se habrn creado, entre otras cosas, las biblitecas .dll y el archivo de acceso a esas libreras. Ver
siguiente pantalla.
Se trata de un error tpico de enlazado al que hay que acostumbrase a identificar. La herramienta
no est encontrando las funciones de biblioteca.
En realidad se trata de dos errores. El primero es la imposibilidad de localizar la biblioteca de
QWT para acceso a la dll (libqwtd5.a).
Sin que sirva de precedente, y para ilustrar la problemtica, se realizar el siguiente apao:
Copiar el directorio "lib" creado en la primera etapa al raz del proyecto qwt.
El proyecto se debera construir ahora sin errores (los warnings son por otros motivos).
Ahora podemos probar a ejecuta el proyecto (botn "play" de QtCreator). En realidad se han creado un montn de ejecutables y se intenta ejecutar el primero, que es "bode.exe".
Oooppsss. No funciona. Puetas!.
Tranquilos, se trata de una sensacin normal de todos los que usan herramientas externas. Se in tentar identificar mejor el problema:
Haz clic sobre el ejecutable. Debera salir algo del siguiente estilo.
La razn es que, ahora, el problema est en que la aplicacin no puede localizar y cargar la biblioteca dinmica. Este es un problema tpico de las aplicaciones que usan libreras dinmicas. Una compilacin esttica resolvera este problema particular.
Para solucionar este problema debemos colocar la biblioteca en la ruta de bsqueda de bibliotecas
de Windows segn se ha indicado en el material de teora. Otro recurso tpico es copiarla en C:\Windows\system32, pero es, ms bien, una chapuza.
Se har otra chapuza: copia qwt5.dll al directorio donde se han creado los ejecutables y probar de
nuevo.
Repuetas! Esto es un infierno!!!!
Tranquilidad. Sigue los siguientes pasos:
Abrir un teminal de windows configurado para Nokia Qt (Inicio->Nokia ... -> Command
prompt)
Ejecutar bode.exe
!Menos mal!.
Lo que ocurre ahora es que el ejecutable encuentra QWT, pero ahora no localiza las .dll de Qt, que
s viene preconfiguradas desde dentro de Qt Creator. Abriendo el terminal, se configura la variable
PATH para que las bibliotecas de Qt sean localizables.
Prueba los ejemplos.