Pregunta

Estoy usando QtCreator en las ventanas utilizando MSVC compilador (el compilador de Visual C ++ Express Edition) y QT 4.5.2 de código abierto.

Cuando modifico un encabezado en el proyecto y pulse la acumulación de todo, nada es en realidad construida, solamente Si modifico un archivo .cpp del CPP modificado se compila.

Esto provoca que cada vez que tengo que cambiar algunas archivo de cabecera utilizada por varios archivos .cpp que tiene que reconstruir un proyecto completo. Hay una manera de evitar este comportamiento?

Gracias de antemano

¿Fue útil?

Solución

Son sus archivos de cabecera enumeran en la variable encabezados en el archivo .pro? Creo que lista los ficheros de cabecera en las cabeceras también es necesario para obtener las clases dentro de ellos MOC'ed.

** [editar] ** No importa, he probado esto con Qt Creator 1.2.1 desde el Qt SDK 4.5.2 en Linux, y cuando 'toque' un archivo de cabecera, la CPPS de los que depende se vuelven a compilar, si es o no el encabezado aparece en la lista de encabezados.

En el qmake Makefile genera, mis archivos cpp que incluyen el archivo h en cuestión tienen una regla que enumera explícitamente el archivo h como una dependencia. No sabe cómo qmake hace eso. Yo te sugeriría que busca en el qmake makefile generado para usted, y ver lo que la regla para uno de sus archivos cpp se parece. [/ editar]

[editar de nuevo, saliendo del tema ahora] ** Por lo general, en el sistema de construcción a base de maquillaje que invocan gcc, se genera información de dependencia de los archivos de cabecera incluidos por la CPPS preguntando a gcc que lo haga por usted, con el - bandera M. cl.exe (Microsoft el compilador de C ++) no producirá un archivo .d no importa lo bien que lo preguntas, por lo que es poco común el uso de su opción / showincludes, y luego analizar la salida con una secuencia de comandos para convertirla en una. d archivo así que puede incluirlo (a mucha gente omitir este paso y simplemente no tienen dependencia adecuada comprobación de maquillaje a base de generaciones que cl.exe uso, porque es una especie de pITA). No obstante , no creo qmake hace nada por el estilo para obtener la información de dependencia, porque qmake está generando un makefile que a su vez invoca el compilador, y en ese momento, la información de dependencia (al menos en el makefile miré a) está codificada. [/ editar] **

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top