Qt-3.3.2

Introducción a Qt

El paquete Qt contiene una librería de interfaz gráfica (GUI) en C++. Es útil para crear o ejecutar aplicaciones gráficas que estén enlazadas dinámicamente a la librería Qt.

Información sobre el paquete

Instalación de Qt

Hay varias formas de instalar un paquete tan complicado como Qt. Los ficheros no son por completo independientes de su hubicación. Los procedimientos de compilación ejecutan el programa pkg-config para determinar la localización de los ejecutables, librerías, cabeceras y otros ficheros del paquete. Para Qt, pkg-config buscará el fichero lib/pkgconfig/qt-mt.pc que debe modificarse si rehubicas el paquete. Este fichero se establece ccorrectamente mediante el proceso de construcción.

La instalación por defecto coloca los ficheros en /usr/local/qt/. Muchas distribuciones comerciales ponen los ficheros en la jerarquía /usr del sistema. El paquete también puede instalarse en un directorio arbitrario.

Esta sección mostrará dos métodos diferentes.

[Nota]

Nota

El tiempo de construcción de Qt es bastante largo. Si quieres ahorrar algo de tiempo y no quieres los tutoriales y ejemplos, cambia la primera línea de make a:

make sub-tools

Método 1 - Instalación en la jerarquía /usr

La ventaja de este método es que no hace falta actualizar los ficheros /etc/ld.so.conf o /etc/man.conf. Los ficheros del paquete se distribuyen dentro de los diferentes subdirectorios de la jerarquía /usr. Este es el método usado por muchas distribuciones comerciales.

sed -i "s:cp -f:install:" mkspecs/linux-g++/qmake.conf &&
bash
export PATH=$PWD/bin:$PATH &&
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH &&
./configure -prefix /usr -docdir /usr/share/doc/qt \
    -headerdir /usr/include/qt -plugindir /usr/lib/qt/plugins \
    -datadir /usr/share/qt -translationdir /usr/share/qt/translations \
    -sysconfdir /etc/qt -qt-gif -system-zlib \
    -no-exceptions -thread -plugin-imgfmt-png -system-libpng &&
find -type f -name Makefile | xargs sed -i "s@-Wl,-rpath,/usr/lib@@g" &&
make &&
make install &&
ln -sf libqt-mt.so /usr/lib/libqt.so &&
cp -r doc/man /usr/share &&
cp -r examples /usr/share/doc/qt &&
exit

Método 2 - Instalación en /opt

Este es el método recomendado por los desarrolladores de Qt. Tiene la ventaja de guardar todos los ficheros del paquete en una jerarquía de directorios dedicada. Usando este método, se puede hacer una actualización sin necesidad de sobreescribir una instalación previa y los usuarios pueden volver fácilmente a una versión anterior con sólo cambiar un enlace simbólico.

Los desarrolladores de Qt utilizan por defecto la localización /usr/local/qt/, sin embargo, este procedimiento pone los ficheros en /opt/qt-3.3.2/ y luego crea un enlace simbólico a /opt/qt/.

bash
export QTDIR=$PWD &&
export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH &&
export PATH=$PWD/bin:$PATH &&
./configure -prefix /opt/qt-3.3.2 -qt-gif -system-libpng \
   -system-libmng -system-zlib -system-libjpeg -no-exceptions \
   -thread -plugin-imgfmt-png &&
make &&
make install &&
ln -sfn qt-3.3.2 /opt/qt &&
ln -s libqt-mt.so /opt/qt/lib/libqt.so &&
cp -r doc/man /opt/qt/doc &&
cp -r examples /opt/qt/doc
exit
Configuración

Sólo para el método 2, actualiza los ficheros /etc/ld.so.conf y /etc/man.conf .

cat >> /etc/ld.so.conf << "EOF"
# Inicio de la adición de qt a /etc/ld.so.conf

/opt/qt/lib

# Fin de la adición de qt
EOF
ldconfig

cat >> /etc/man.conf << "EOF"
# Inicio de la adición de qt a man.conf

MANPATH /opt/qt/doc/man

# Fin de la adición de qt a man.conf
EOF

Igualmente, es necesario establecer la variable QTDIR cuando se compilan paquetes que dependen de Qt. Añade lo siguiente al guión de inicialización .bash_profile de cada usuario que construya paquetes usando las librerias Qt. Alternativamente, la variable puede ponerse en el fichero /etc/profile del sistema.

export QTDIR=/opt/qt

Explicación de los comandos

sed -i "s:cp -f:install:" mkspecs/linux-g++/qmake.conf: install es más seguro que cp cuando se usa en librerías.

bash: Este comando inicia un subintérprete de comandos para aislar los cambios del entorno.

export QTDIR=$PWD: Este comando define dónde se encuentra el directorio raíz de Qt.

export LD_LIBRARY_PATH=$PWD/lib:$LD_LIBRARY_PATH: Este comando establece la localización de las librerías para el proceso de construcción.

export PATH=$PWD/bin:$PATH: Este comando permite al proceso de construcción encontrar los ejecutables de soporte.

-qt-gif: Este comando añade soporte para ficheros gif a las librerías.

-system-zlib -system-libpng: Esta opción fuerza a la librería a usar las librerías compertidas que hay en tu sistema, en vez de recrear su propio conjunto de librería de soporte para estas funciones.

-no-exceptions: Esta opción desactiva los códigos de excepción generados por el compilador C++.

-thread: Esta opción añade soporte multihilo.

find -type f -name Makefile | xargs sed -i "s@-Wl,-rpath,/usr/lib@@g": Esta opción elimina la rutas fijadas en tiempo de ejecución, de otra forma uic siempre intenta ejecutarse con librerías Qt en /usr/lib.

ln -s libqt-mt.so /usr/lib/libqt.so: Este comando permite al guión configure encontrar una instalación funcional de Qt.

cp -r doc/man /usr/share (o /opt/qt/doc): Este comando instala las páginas de manual olvidadas por make install.

cp -r examples /usr/share/doc/qt (o /opt/qt/doc): Este comando instala los ejemplos olvidados por make install.

exit: Este comando regresa al intérprete de comandos padre y elimina las variables de entorno establecidas anteriormente.

Configuración de Qt

Información sobre la configuración

Como con casi todas las librerías, no necesita configuración, salvo que el directorio de la librería (por ejemplo, /opt/lib o /usr/local/lib) debe aparecer en /etc/ld.so.conf para que ldd pueda encontrar las librerías compartidas. Después de comprobar si esto es necesario, debes ejecutar /sbin/ldconfig como root .

Contenido

La librería Qt/X11 contiene las API necesarias para usar programas basados n el conjunto de herramientas GUI de Qt.

El paquete Qt contiene assistant, designer, linguist, lrelease, lupdate, moc, qm2ts, qmake, qtconfig, uic, y las librerías libqt-mt y libqui.