Sala qt1318|Cómo solucionar el problema del bloqueo de p
La dirección de descarga de cada versión de qt (encontré muchos enlaces en publicaciones de blogs en Internet, pero ninguno funcionó. El siguiente enlace parece ser relativamente nuevo y todavía se puede usar):
http://qt-project.org/downloads
ftp://ftp.qt-project.org/qt /source/
Buscar qt- x11-opensource en recursos ftp -Src-4.5.0, qt-embedded-linux-opensource-src-4.5.0 y descargue los dos paquetes de código fuente (ambos paquetes tar.gz o tar.bz2 están disponibles. Si la velocidad de la red no es bueno, depende de cuál es más pequeño. Si la velocidad de Internet no es buena, puedes descargar el más pequeño).
Descarga los dos paquetes de código fuente y descomprímelos. qt-x11-opensource-src-4.5.0 descomprime una copia, qt-embedded-linux-opensource-src-4.5.0 descomprime dos copias, denominadas qt-embedded-linux-opensource-src-4.5.0 y qt-embedded -linux-opensource-src-4.5.0.5.0 y qt-embedded-linux-opensource-src-4.5.0, y qt-embedded-linux-opensource-src-4.5.0 Descomprima dos copias, respectivamente Llamadas src-4.5 .0-x86 y qt-embedded-linux-opensource-src-4.5.0-arm.
Iniciar compilación e instalación:
I. Compilación X11:
1. Vaya al directorio de código fuente qt-x11-opensource-src-4.5.0 .
./configure -no-openssl
En mi caso, tuve que agregar la opción -no-openssl, de lo contrario obtendría un error al compilar a ssl durante el proceso de creación. .
El mensaje de error es el siguiente:
ssl/qsslsocket_openssl_symbols_p.h: 264: error: variable o campo 'q_sk_free' declarado nulo
ssl/qsslsocket_openssl_symbols_p.h: 264: error: ' STACK' no fue declarado en este alcance
ssl/qsslsocket_openssl_symbols_p.h: 264: error: variable o campo 'q_sk_free' declarado nulo
ssl/qsslsocket_openssl_symbols_p.h: 264: error: 'a' no fue declarado en este alcance
ssl/qsslsocket_openssl_symbols_p.h: 265: error.STACK' no fue declarado en este alcance
ssl/qsslsocket_openssl_symbols_p.h: 265 : error: 'a' no fue declarado en este ámbito
...
...
La ruta de instalación predeterminada es /usr/local /Trolltech /Qt-4.5.0. Puede especificar una ruta diferente usando --prefix.
2. gmake # En Linux, normalmente puedes usar make en lugar de gmake, pero si quieres acelerar la compilación, puedes agregar -jx, donde x es el número máximo de subprocesos.
3. instalación de gmake
El segundo paso es compilar qt-embedded-x86:
1. Vaya a qt-embedded-linux-opensource-src - Directorio de código fuente 4.5.0-x86.
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-x86 -embedded x86 -no-openssl -qt-gfx-qvfb -qt-kbd-qvfb -qt-mouse- qvfb
Configure el directorio de instalación y la arquitectura integrada (x86) en secuencia. Al igual que con la versión X11, también se configura -no-openssl, sin el cual el proceso de creación generará un error como cuando se compila para X11. Los últimos elementos son para un mejor uso de qvfb.
Se dice en Internet que sin estas opciones, cuando instalas qt-embedded-x86 e intentas depurar el programa en qvfb, aparecerá un error similar al siguiente:
Error al abrir el dispositivo de búfer /dev /fb0QScreenLinuxFb:: connect: No existe tal archivo o directorio: No existe tal archivo o directorio
2. gmake
Igual que x11
3. gamke install p>
3. qt-embedded-arm:
A diferencia de los dos anteriores, debes asegurarte de estar usando la versión arm antes de compilar qt-embedded. El proceso de compilación genera muchas bibliotecas para la arquitectura arm, por lo que debes instalar herramientas como arm-linux-gcc y arm-linux-g. Usé arm-linux-g proporcionado por Friendly. Estoy usando la versión arm-linux-gcc-4.5.1 proporcionada por Friendly.
1. Ingrese al directorio de código fuente qt-embedded-linux-opensource-src-4.5.0-arm.
./configure -prefix /usr/local/Trolltech/QtEmbedded-4.5.0-arm -embedded arm -no-openssl -qt-libpng
Especifique la ruta de instalación, incrustada arquitectura. También configura -no-openssl en la versión X11, sin el cual el proceso de creación obtendrá el mismo error que al compilar para X11.
Además, hay una nueva opción -qt-libpng, que debería estar relacionada con bibliotecas relacionadas con png y especifica el uso de la biblioteca png que viene con qt.
Sin esta opción, aparece el siguiente error aquí:
image/qpnghandler.cpp: En la función miembro 'virtual QVariant QPngHandler::option(QImageIOHandler::ImageOption) const':
p>image/qpnghandler.cpp:950:35: advertencia: 'png_info_struct::width' está en desuso (declarado en /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi /4.5.1 /.../.../.../.../.../.../.../.../arm-none-linux-gnueabi/include/png.h :639)
image/qpnghandler.cpp:950:35: advertencia: 'png_info_struct::width' está en desuso (declarado en /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm- none-linux- gnueabi/4.5.1/..../.../.../...
image/qpnghandler.cpp:950:55: advertencia: 'png_info_struct::height ' está en desuso ( declarado en /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/.../.../.../.../. ../arm-none-linux-gnueabi/include/png.h:640)
image/qpnghandler.cpp:950:55: advertencia: 'png_info_struct::height' está en desuso (declarado en / opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1/.../.../.../.../arm-none-linux-gnueabi/ include/png.h: 640)
make[1]: *** [.obj/release-shared-emb-arm/qpnghandler.o] Error 1
make[ 1]: *** Esperando tareas sin terminar y tareas completadas...
make[1]: Saliendo del directorio `/root/qt4.5.0/qt-embedded-linux-opensource -src-4.5 .0-arm/src/gui'
make: *** [subgui-make_ default-ordered] error 2
Parece que mi cadena de herramientas cruzada es diferente a esta versión de QT no coincide del todo y Qt parece ser incompatible con las estructuras de datos definidas en el archivo de encabezado png.h en todas las cadenas de herramientas. Agregar -qt-libpng resuelve este problema.
4. qvfb:
QT se ha instalado correctamente.
Vaya al directorio del paquete de código fuente qt-x11-opensource-src-4.5.0,
cd tools/qvfb
Ejecute en el código fuente de qvfb directorio make, genere qvfb en qt-x11-opensource-src-4.5.0//qvfb.
Podemos copiarlo a /usr/local/Trolltech/QtEmbedded-4.5.0-x86/bin.
Fin:
En este punto, el entorno de desarrollo QT está básicamente configurado. Puede utilizar las herramientas qt-embedded-x86 y qvfb para depurar fácilmente los programas QT. al compilar con qt-embedded-arm, se puede ejecutar en la placa de desarrollo (también hay un pequeño problema. Aunque el programa QT que compilé ahora se puede ejecutar en la placa de desarrollo, el compilador qt-embedded-arm no se puede usar). Se puede ejecutar en la placa de desarrollo, pero la pantalla táctil no se puede usar durante la operación. Solo se puede controlar con un mouse USB. Para admitir la pantalla táctil, parece que es necesario trasplantar la biblioteca tslib.