@ agnasg

agnasg


De la mala documentación

08-11-2016 3:39 PM

Me refiero en el título a las documentación que no cumple su cometido: documentar. Estoy migrando Qt a 5.7 y encontré muchos de los problemas descritos aquí. ¿Quién es el autor de esta documentación? Yo.

Por ejemplo, “C2061: syntax error : identifier ‘__RPC__out_xcount_part’” es un terrible error que casi nadie en google (me refiero a internet) sabe cómo resolver. Pues mi solución de hace dos años fue “eliminar completamente el include de DirectX en el makefile”, pues rearreglar las variables INCLUDE no funciona.

“eliminar completamente el include de DirectX en el makefile”

“eliminar completamente el include de DirectX en el makefile”

¿Qué significa eso? ¿Cuál makefile, yo no veo el makefile? Claro afortunadamente todavía tengo la instalación de qt 5.2 y pude descubrir (recordar) que el error se presenta en “qtmultimedia/src/plugins/directshow”

Lo que pasa es que haciendo pruebas se hace realmente engorroso hacer un clean a una configuración porque el “nmake clean” no funciona como uno supone, y eso es necesario cada vez que cambiamos la configuración. Así que descubrí cómo hacer un “shadow build”, es decir, usar un directorio de trabajo diferente al que está junto con los sources. Para hacer eso hay que hacer los siguientes pasos:

Supongamos que qt está instalado en c:\qt

mkdir c:\qt-build # este es nuestro directorio de trabajo donde se compilará todo (donde están los makefile)

cd c:\qt-build       # entramos en el directorio

..\qt\configure -debug-and-release -opensource -confirm-license -platform win32-msvc2013 (otros flags)

Así que los makefile quedan en la estructura  c:\qt-build no dentro de c:\qt y por eso

“eliminar completamente el include de DirectX en el makefile”

no hace sentido si no sabes dónde están los makefile.

Un misterio que todavía no estoy seguro pueda resolver es de dónde salen los

-I”C:\Program Files (x86)\Microsoft DirectX SDK (February 2007)\include”

que aparecen en los makefile despues de hacer el configure, si:

  1. La variable INCLUDE no lo tiene
  2. La variable DXSDK_DIR está eliminada (anteriormente apuntaba al SDK de feb 2007

Es posible que la variable DXSDK_DIR sea la culpable, tendré que hacer más auditoría forense. Como quiera que sea estoy en el día 2 de la migración a 5.6 Correcto, 5.7 parece estar llena de problemas.