2010-05-04 17 views
5

La instalación de My Delphi ha ido cuesta abajo durante los últimos meses. Sin embargo, parece que cada cierto tiempo cuando construyo una versión tiene extraños errores que se resuelven si construyo, luego compilo, luego compilo, compilo, etc.Delphi 6 - Los errores desaparecen cuando compilo varias veces

He hablado con otro desarrollador que piensa que esto es un error del compilador Este tipo de rendimiento degradante a lo largo del tiempo también nos ha sucedido en otras computadoras.

Qué cree que el desbordamiento de pila podría ser el problema.

+7

Parece que es hora de actualizar. :) – kludg

+4

Personalmente, encontré que con Delphi siempre estabas mejor saltándote los lanzamientos pares. Todos ellos eran escamosos. Por supuesto, en los últimos años decidí que, por mi propia cordura, seguiría adelante y me saltaría también los de números impares. – NotMe

+1

¿Qué tipo de "errores extraños"? ¿Esperas que adivinemos o leamos tus pensamientos? :) – Alex

Respuesta

7

Lo que he visto más es un caso donde existen múltiples versiones de las mismas unidades/dcus en diferentes carpetas/rutas, y dependiendo de variaciones casi insignificantes el compilador/enlazador usa una ruta diferente y elige diferentes versiones de las unidades para construir el exe
Haría una gran limpieza de primavera, examinaría las rutas de búsqueda/búsqueda, eliminaría todos los dcus y me aseguraría de que no haya versiones duplicadas de ninguna unidad.
Y, de acuerdo, reinstalar Delphi podría ayudar a comenzar con un estado limpio.

+0

Esa es una posibilidad muy probable. El dcus y los componentes que utilizamos son nidos de ratas gigantes que han mutado en los últimos 10 años o así que la aplicación ha estado en desarrollo. Hay algunos componentes de los que ni siquiera tenemos la fuente pero solo la DCU compilada. ¿Tiene alguna recomendación de una manera fácil de verificar unidades múltiples/dcus, y hacer todo esto? ¿Algún tipo de programa o complementos? – Daisetsu

+6

@Daisetsu: GAH! ¡Nunca jamás deberías usar componentes DCU solamente! Si estuviera en su posición, esa sería mi próxima pregunta de StackOverflow: "¿Cómo puedo reemplazar Con una alternativa que tenga la fuente disponible, con un mínimo de dificultad". –

+1

@Mason: Completamente [email protected]: NUNCA use componentes sin la fuente. Lo aprendí de la manera difícil. –

0

Eso no es mucho para seguir, pero suena como un caso clásico de "bit rot". Demasiadas cosas que interactúan de muchas maneras durante demasiado tiempo en un SO mal diseñado, lo que genera formas extrañas de corrupción de datos.

Lo primero que haría es desinstalar Delphi y volver a instalar. Si eso no funciona, intente reinstalar Windows. (Si ha estado funcionando lo suficiente como para que esto ocurra, es probable que deba reinstalar el sistema operativo de todos modos). Y si eso no funciona, póngase en contacto con el soporte técnico de Embarcadero.

+4

Me parece interesante que culpe al sistema operativo por problemas en su compilador cuando Delphi mismo (múltiples versiones) tiene un historial de exhibir este tipo de comportamiento escamoso, mientras que otros compiladores parecen funcionar. – NotMe

5

Estoy de acuerdo con @ François sobre las DCU, pero también quiero señalar una observación: a veces es importante lo que se creó antes de lo que está construyendo. es decir, si tiene varios proyectos que contienen código fuente que da como resultado la creación de varios archivos .dcu/bpl en un directorio común, pero el proyecto que le preocupa no exige explícitamente que se reconstruyan, entonces está va a terminar con lo que sea que esté allí. Si borra el archivo dcus/dcps antes de compilarlo y luego descubre que su proyecto no se compila, entonces le falta una cláusula uses/requires en alguna parte. Cada proyecto podría construir sobre una "borrón y cuenta nueva", y no depender de los binarios sobrantes.

Cuestiones relacionadas