2010-05-04 10 views
5

L'installazione di Delphi è andata in discesa negli ultimi mesi. Sembra che ogni tanto quando costruisco un rilascio abbia degli errori strani che vengono risolti se costruisco, poi compilo, poi compilo, compilo, ecc.Delphi 6 - Gli errori scompaiono quando compilo più volte

Ho parlato con un altro sviluppatore che pensa che questo è un errore del compilatore. Questo tipo di prestazioni degradanti nel tempo è successo anche su altri computer.

Cosa può pensare il sovraccarico dello stack.

+7

Sembra che sia ora di effettuare l'aggiornamento. :) – kludg

+4

Personalmente, ho scoperto che con Delphi stavi sempre meglio saltando le versioni pari. Tutti loro erano traballanti. Naturalmente, negli anni successivi ho deciso che per la mia sanità mentale avrei continuato a saltare anche quelli dispari. – NotMe

+1

Che tipo di "strani errori"? Ti aspetti di indovinare o leggere i tuoi pensieri? :) – Alex

risposta

7

Quello che ho visto di più è un caso in cui esistono più versioni delle stesse unità/dcus in diverse cartelle/percorsi e, a seconda di variazioni quasi insignificanti, il compilatore/linker utilizza un percorso diverso e sceglie versioni diverse delle unità per costruire l'exe.
Effettuerei un'enorme pulizia di primavera, esaminerò i percorsi di lib/search, rimuoverò tutti i dcus e assicurarmi che non ci siano versioni duplicate di nessuna unità.
E, d'accordo, reinstallare Delphi potrebbe aiutare a iniziare con uno stato pulito.

+0

Questa è una possibilità molto probabile. Il dcus e i componenti che utilizziamo sono ratti giganti che sono mutati negli ultimi 10 anni o giù di lì l'applicazione è stata in sviluppo. Ci sono alcuni componenti di cui non abbiamo nemmeno la fonte, ma solo la DCU compilata. Avete qualche suggerimento su un modo semplice per controllare più unità/dcus e fare tutto questo? Qualsiasi tipo di programma o plugin? – Daisetsu

+6

@Daisetsu: GAH! Non dovresti mai usare MAI solo componenti DCU! Se fossi nella tua posizione, quella sarebbe la mia prossima domanda StackOverflow: "Come posso sostituire con un'alternativa che ha sorgente disponibile, con un minimo di difficoltà?" –

+1

@Mason: completamente [email protected]: non utilizzare MAI componenti senza la fonte. L'ho imparato nel modo più duro. –

0

Non c'è molto da dire, ma sembra un caso classico di "bit rot". Troppe cose che interagiscono in troppi modi per troppo tempo in un sistema operativo mal progettato, portando a strane forme di corruzione dei dati.

La prima cosa che farei è disinstallare Delphi e reinstallare. Se ciò non funziona, prova a reinstallare Windows. (Se è trascorso abbastanza tempo perché ciò avvenga, probabilmente è necessario che il sistema operativo venga reinstallato comunque.) Se ciò non funziona, contatta il supporto tecnico di Embarcadero.

+4

Trovo interessante che tu dia la colpa al sistema operativo per problemi nel suo compilatore quando Delphi stesso (versioni multiple) ha una storia di esibizione di questo tipo di comportamento traballante mentre altri compilatori sembrano funzionare. – NotMe

5

Sono d'accordo con @ François riguardo le DCU, ma voglio anche segnalare un'osservazione: a volte importa ciò che è stato costruito prima di ciò che state costruendo. cioè se hai diversi progetti che contengono codice sorgente che si traduce in vari file .dcu/bpl creati in una directory comune, ma il progetto che ti interessa non richiede esplicitamente che vengano ricostruiti, quindi sei andando a finire con qualunque cosa ci sia. Se si cancella il dcus/dcps prima della creazione, e poi si scopre che il progetto non viene compilato, manca una clausola uses/uses da qualche parte. Ogni progetto può essere costruito su una "lavagna pulita" e non fare affidamento sui binari rimanenti.

Problemi correlati