2015-09-30 18 views
40

ho aggiornando 'TYPES.OBJ' fomr un vecchio progetto di costruzione eredità utilizzando C++ Builder 2010 di compilare con C++ Builder 10 Seattle. Ho principalmente dovuto cambiare i percorsi, un sacco di dupIgnore-TDuplicates::dupIgnore, reimportare alcuni componenti come MSXML e MSMQ eccLinking fallisce [ilink32 errore] irreversibile: Impossibile aprire il file di codice

prima per una serie di sottoprogetti che il progetto principale utilizza sotto forma di BPL di e dll e infine compila il codice del progetto principale.

... Ma fallisce un collegamento: P

[ilink32 Error] Fatal: Unable to open file 'TYPES.OBJ' 

Ho cercato di trovare informazioni su potenziali problemi e molti menzione assicurandosi System viene fornito nella dotazione Unità sotto la Delphi compilatore impostazioni. Ma questo è già presente per questo progetto. Cos'altro potrebbe causare questo?

Per informazioni. Compilato usando il compilatore "classico" bcc32 per ora.

percorso di inclusione:

$(BDSINCLUDE)\windows\vcl;$(BDSINCLUDE)\dinkumware;

Biblioteca Percorso:

$(BDSLIB)\$(PLATFORM)\$(Config);$(BDSLIB)\$(PLATFORM)\Release\psdk; 
+1

Si potrebbe provare ad aggiornare gli elenchi include (.h) e pragma (.cpp) eliminandoli o commentandoli. Quando salvi, vengono generati automaticamente di nuovo. Linker erro si verifica dopo aver compilato l'exe, giusto? –

+1

Non sono sicuro di capire cosa intendi per "elenchi"? Immagino che tu intenda solo le normali direttive di inclusione e pragma? Sono parecchi in un bel numero di file se questo è ciò che intendi. E in che modo l'ide sa quali "ricreare" quando includi file da tutto il luogo? – inquam

+1

Ci scusiamo per la descrizione imprecisa. Alcuni dei direcitv di inclusione e pragma vengono aggiunti automaticamente quando si inserisce un componente in un modulo. Ho affrontato questo problema quando eseguivo il porting di una vecchia applicazione su XE2 perché alcuni dei tipi di direktives sono stati modificati. –

risposta

0

avrei seguito il consiglio dato da Tim D prima. Ogni volta che comincio ad usare una versione più recente di un compilatore, il 90% dell'importazione di vecchi progetti è dovuto direttamente a me includendo file di codice/intestazione/oggetto e creando una versione vuota, quindi la copia dopo il 99% delle volte la ripara.

Dopo essersi assicurati che i dati sono stati creati freschi, quindi importando i vecchi dati su di esso, vorrei verificare la presenza di problemi di incompatibilità legacy. Sei sulla strada giusta con la modifica delle "liste". Ti consiglio anche di assicurarti che tutto il tuo codice venga riscritto per il nuovo compilatore in mente. Questo aiuta sia con la compatibilità del codice sia con lo snellimento per l'esecuzione del progetto finito.

Infine, vorrei verificare che tutti i dati aggiuntivi (file che non sono codice puro come i file di intestazione) siano ancora riconoscibili anche dal compilatore attualmente in uso. (L'eredità può causare che questo sia pignolo.)