2015-09-30 2 views
40
'TYPES.OBJ' öffnen

Ich habe fomr einem alten Legacy-Projekt Build mit C++ Builder 2010 kompilieren mit C++ Builder 10 Seattle Aktualisierung Code. Ich habe musste meist Pfade ändern, eine Menge dupIgnore-TDuplicates::dupIgnore, einige Komponenten wie MSXML und MSMQ usw.Linking schlägt fehl [ILINK32 Fehler] Fatal: Kann Datei

Erste für eine Reihe von Teilprojekten wieder importieren, die das Hauptprojekt in Form verwendet BPL die und DLL und schließlich kompiliert der Code des Hauptprojekts.

Aber ... es nicht eine Verknüpfung: P

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

ich versucht habe, Informationen über mögliche Probleme und viele Erwähnung zu finden, dass System machen in der Einheit Scope geliefert unter dem Delphi-Compiler die Einstellungen. Aber das ist für dieses Projekt bereits vorhanden. Was könnte das sonst noch verursachen?

Für Informationen. Kompiliert mit "klassischen" bcc32-Compiler für jetzt.

Fügen Sie Pfad:

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

Bibliothek Pfad:

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

Sie könnten versuchen, die Include (.h) und Pragma (.cpp) Listen zu aktualisieren, indem Sie sie löschen oder kommentieren. Beim Speichern werden sie automatisch neu generiert. Linker-Fehler tritt nach dem Kompilieren der exe auf, richtig? –

+1

Ich bin mir nicht sicher, ich verstehe, was Sie mit "Listen" meinen? Ich nehme an, Sie meinen nur die normalen include- und pragma-Anweisungen? Sie sind ziemlich viele in einer Reihe von Dateien, wenn Sie das meinen. Und wie würde die Idee wissen, welche "neu zu erstellen", wenn Sie Dateien aus dem ganzen Ort hinzufügen? – inquam

+1

Entschuldigung für die ungenaue Beschreibung. Einige der Include- und Pragma-Direktiven werden automatisch hinzugefügt, wenn Sie eine Komponente in ein Formular einfügen. Dieses Problem trat auf, als ich eine ältere Anwendung auf XE2 portierte, weil einige der Include-Direktiven geändert wurden. –

Antwort

0

Ich würde den Rat von Tim D zuerst gegeben folgen. Wann immer ich eine neuere Version eines Compilers benutze, sind 90% des Imports von alten Projekten direkt mit Code/Header/Objekt-Dateien verbunden und das Erstellen einer leeren Version, die anschließend kopiert wird, behebt 99% der Zeit danach.

Nachdem Sie sichergestellt haben, dass die Daten neu erstellt wurden und Sie Ihre alten Daten importieren, würde ich nach älteren Incompatibility-Problemen suchen. Sie sind auf dem richtigen Weg mit dem Ändern Ihrer "Listen". Ich empfehle auch, dass Sie sicherstellen, dass Ihr gesamter Code für den neuen Compiler neu geschrieben wird. Dies hilft sowohl bei der Codekompatibilität als auch bei der Optimierung für das Ausführen des fertigen Projekts.

Schließlich würde ich überprüfen, dass alle Ihre zusätzlichen Daten (Dateien, die nicht reinen Code wie Header-Dateien sind) immer noch zu dem Compiler derzeit verwendet werden. (Legacy kann dazu führen, dass dies heikel wird.)