Mors in vallem descensum – Instalación de Qt
Estoy compilando qt… desde hace una semana. qt es una herramienta para desarrollar aplicaciones con interfaz gráfica de usuario. Quiero sustituir a irrlicht gui de una de mis herramientas para manipulación de datos (tipo etl pero sin tanta parafernalia).
Para información sobre cómo comenzar a trabajar con Qt una vez que está instalado ver este post.
Primer paso como se describe aquí (también ver aquí) es descomprimir el archivo qt-everywhere-opensource-src-5.2.0.zip. A mi no me funcionó Winrar, así que utilicé 7z (que se puede conseguir aquí).
Segundo paso crear la configuración, dependiendo de sus preferencias el comando es algo así como esto:
configure -debug -nomake examples -opensource -platform win32-msvc2010 -opengl desktop -static
Ver abajo más detalles
¿Errores? Una miríada. Al principio traté de compilarlo utilizando MSVS Express 2005 aún cuando la documentación dice que solamente MSVS 2010+ está soportado. Problemas. Muchos problemas. Mi conclusión es que es imposible porque hay un archivo que no es compatible en lo absoluto. Inclusive dice que es un archivo que va a ser eliminado. Su función parece ser garantizar que nadie intente compilar con MSVS Express 2005.
Ergo, MSVS2010. Errores. Muchos. Cada error en MSVS 2010 tiene su explicación. Este error:
YarrInterpreter.obj : error LNK2019: unresolved external symbol “struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::newlineCreate(void)”
se debe a que se requiere python instalado. python se utiliza para customizar “algo” en el interprete Yarr (un intérprete js de webkit). La documentación indica que se requiere perl, pero yo no leí por ningún lado “se requiere python”. Inclusive hay páginas como esta que indican que la distribución (el famoso archivo qt-everywhere-opensource-src-5.2.0.zip), incluye todo lo necesario. Incluye todo lo necesario my ass.
Este otro error:
C2061: syntax error : identifier ‘__RPC__out_xcount_part’
que aparece en los archivos relacionados a DirectX (por ejemplo /qtmultimedia/src/plugins/directshow) se debe a un conflicto entre la definición de la plataforma (en mi caso win32-msvc2010) y los archivos de DirectX (yo uso febrero de 2007). Por ahí se dice que la solución es garantizar que el include de DirectX esté después del include win32-msvc2010, pero eso a mí no me funcionó. Lo que hice fue hacer algo ridículo, eliminar completamente el include de DirectX en el makefile. Funcionó. Es decir, para compilar directshow no se requiere realmente DirectX. Weird.
Otra fuente de errores es utilizar el comando configure incorrectamente. Este comando tiene 30 opciones diferentes así que se requiere experiencia para usarlo. Será dentro de dos meses, quizás. Entre mis primeros intentos este me parecía el correcto:
configure -debug -nomake examples -opensource -platform win32-msvc2010 -opengl desktop
Finalmente me quedé con este:
configure -debug -nomake examples -opensource -platform win32-msvc2010 -opengl desktop
Pero se me olvidó que requiero de las librerías estáticas. Ups. Así que debe ser este:
configure -debug -nomake examples -opensource -platform win32-msvc2010 -opengl desktop -static
Si por alguna razón usted requiere reconfigurar, se puede borrar todo y empezar de nuevo con:
nmake confclean (o nmake clean (maybe))
Si este comando falla es mejor eliminar la carpeta y descomprimir el archivo qt-everywhere-opensource-src-5.2.0.zip de nuevo. Yo estuve compilando en una máquina 64 bits, y con target 32bits. Mi configuración no era la correcta así que se geraron muchos errores al momento del link. El nmake clean parece que no borra los makefiles, así que se pueden generar errores que nadie entiende. La forma para estar seguro es como dije al comienzo, borrar la carpeta y descomprimir el archivo qt-everywhere-opensource-src-5.2.0.zip de nuevo.
Es buena idea utilizar la cónsola del SDK de Microsoft para compilar porque ya tiene todas las variables con los valores correctos. Y debes abrirla con privilegios de administrador.
Notas
- Estas instrucciones pueden funcionar si el anterior procedimiento falla.
- Editado para agregar detalles adicionales al instalar por segunda vez en Windows 7 64bits.