2010-12-06 18 views
6

Tengo un proyecto Qt con una traducción al alemán, Translation_de.ts, que se compila automáticamente en Translation_de.qm través Qmake:¿Cómo especificar archivos de recursos generados automáticamente en Qmake?

TRANSLATIONS += Translation_de.ts 
... 
QMAKE_EXTRA_COMPILERS += lrelease 
lrelease.input   = TRANSLATIONS 
lrelease.output  = ${QMAKE_FILE_BASE}.qm 
lrelease.commands  = $$[QT_INSTALL_BINS]/lrelease ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_BASE}.qm 
lrelease.CONFIG  += no_link target_predeps 

El generada Translation_de.qm se compila entonces en la aplicación final como un recurso:

RESOURCES += Resources.qrc 

donde Resources.qrc se parece a esto:

<RCC> 
    <qresource> 
    ... 
    <file>Translation_de.qm</file> 
    </qresource> 
</RCC> 

Un ll de esto funciona bien, excepto que la primera llamada a Qmake en una copia nueva lanza la siguiente advertencia molesto:

RCC: Error in 'Resources.qrc': Cannot find file 'Translation_de.qm' 

¿Qué estoy haciendo mal aquí? ¿Cómo especifico correctamente un archivo de recursos autogenerados como Translation_de.qm?

Respuesta

6

Cree los archivos generados en la fase qmake con, p. system(lrelease...). Deje las otras reglas en su lugar también para que no tenga que volver a ejecutar qmake cuando se modifiquen los archivos de entrada.

2

Creo que lo que quiere es simplemente "ignore_no_exist" para lrelease.CONFIG

Por lo que yo sé los target_predeps asegura de que es ejecutado antes de que se emitan las medidas 'normales' de compilación . Entonces, si realmente solo se trata de deshacerse de la advertencia, simplemente agregue la bandera dada anteriormente. Su creación de qm debería funcionar una vez que ejecute el archivo MAKE creado por la llamada qmake.

Si los archivos no se crean qm intenta agregar:

PRE_TARGETDEPS += compiler_lrelease_make_all 

Control hacia fuera este link para más opciones que pueden ayudarle.

+0

'qmake' no generará dependencias a archivos que no puede encontrar. El Makefile resultante fallará la construcción paralela. –

Cuestiones relacionadas