2009-11-05 7 views
5

Empecé a usar XCode y parece funcionar, bueno, la mayor parte.¿cómo puedo arreglar xcode compilando todo todo el tiempo?

Lo molesto es que compila todos los archivos fuente, incluso aquellos que no cambiaron, todas y cada una de las veces.

Estoy trabajando con openframeworks y pierdo tiempo compilando los archivos fuente de openframeworks cada vez, aunque no cambian.

Éstos son mis IDE y detalles de la máquina:

XCode Versión 3.1.2 versiones de componentes Xcode IDE: 1149.0 Xcode Core: 1148.0 ToolSupport: 1102.0

Mac OS X versión 10.5 . 6

¿Alguien ha tenido el mismo problema? ¿Alguna solución?

+0

Más de una pregunta de programación esto. – ChrisF

Respuesta

3

Muchos (la mayoría de los) sistemas de compilación usan la fecha y hora de última modificación de los archivos para determinar si es necesario realizar una recompilación. Primero verificaría que las fechas de los archivos se comporten como se esperaba; si los archivos están en una unidad de red, por ejemplo, podría haber diferentes configuraciones de tiempo o discrepancias de reloj que harían parecer que los archivos se modificaron en el futuro, por lo que el sistema de compilación siempre los compila. Para el caso, si están en una unidad de red, el protocolo utilizado puede no incluir la fecha de modificación, y el sistema simplemente lo predetermina a "ahora", por lo que siempre parece que cada archivo se acaba de modificar.

+0

Gracias qid, ese parece ser el problema! No sé por qué no se me pasó por la cabeza. –

0

Mi experiencia es que recompila cosas que han cambiado y cosas que dependen de las cosas que han cambiado. Por lo tanto, si está editando un archivo .h que obtiene #import 'd en cualquier otro archivo, naturalmente será necesario volver a compilar todo. Sin embargo, si solo está editando un archivo .m, entonces solo el .m debería ser recompilado. No estoy al tanto de ninguna configuración de Xcode que pueda cambiar este comportamiento.

9

Ha guardado algunos archivos, luego el sistema operativo ha sincronizado la hora del sistema hacia atrás. Esos archivos ahora se detectan para ser modificados en el futuro. Debe ejecutar el siguiente comando bash en la carpeta principal de su proyecto:

find . -exec touch {} \; 
+1

'touch' kann se puede utilizar con varios archivos, por lo que' + 'en lugar de' \; 'también funcionaría. – kay

Cuestiones relacionadas