Object-Dateien neu erstellen

Für Fragen rund um die Ide und zum Debugger
Antworten
Bobface
Beiträge: 3
Registriert: Mi 12. Feb 2014, 22:12

Object-Dateien neu erstellen

Beitrag von Bobface »

Hallo,

ich habe eben ausversehen die .o Dateien von meinen Forms / Units gelöscht. Das sind die unter Projekt\lib\i386-win32\unit1.o
Kann ich die irgendwie neu erstellen lassen, denn ohne die lässt sich mein Programm nicht mehr kompilieren :(

Grüße!

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Object-Dateien neu erstellen

Beitrag von Michl »

Einfach neu kompilieren (Shift + F9) und alles sollte wieder i.O. sein...

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Bobface
Beiträge: 3
Registriert: Mi 12. Feb 2014, 22:12

Re: Object-Dateien neu erstellen

Beitrag von Bobface »

Funktioniert leider nicht.. Dabei tretten diese Fehler auf (Snake ist der Projekt-Name):

Bild

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Object-Dateien neu erstellen

Beitrag von Michl »

Generell kannst Du den ganzen Ordner lib\... löschen. Damit sollten alle Projektdateien neu kompiliert werden, falls Du Sie als Quellen im Projektordner vorliegen hast.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Bobface
Beiträge: 3
Registriert: Mi 12. Feb 2014, 22:12

Re: Object-Dateien neu erstellen

Beitrag von Bobface »

Ok, hab ich gemacht. Es kommen aber immernoch die selben Fehlermeldungen, und es werden nur die Dateien

Snake.compiled
Snake.or
Snake.res
unit1.lfm
unit1.ppu

erstellt. Vielleicht ist es nützlich wenn ich mal erzähle wie das ganze überhaupt passiert ist. Ich habe ein neues Formluar angelegt und wollte das dann kompilieren -> keine .o Datei gefunden. Nachdem ich alles mögliche probiert habe bin ich in den lib-Ordner und habe die .o-Datei von unit1 genommen und wollte die Testweise als unit2.o abspeichern. Dann ist die unit2.o einfach verschunden. Auch wenn ich z.B. eine .o-Datei manuell anlege (z.B. auf dem Desktop "Test.o") und diese dann in den Ordner ziehe, verschindet die Datei einfach ohne irgendeine Meldung, auch während Lazarus geschlossen ist... Das ist schon ziemlich komisch.

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Object-Dateien neu erstellen

Beitrag von Michl »

Das geht so nicht, die Objekt-Datei wird ja von der jeweiligen Unit -> Unit.ppu -> Unit.o erstellt. Da Form1 <> Form2 und damit Unit1 <> Unit2 (in denen die jeweiligen Klassen der Formen gespeichert sind) ist, kannst Du diese auch nicht einfach kopieren - na das weißt Du jetzt ja selber :wink:

Ich würde versuchen das 2.Formular wieder vom Projekt zu entfernen, neu zu kompilieren und dann wieder ein neues Formular zum Projekt hinzu zu fügen.

Falls dieses dann wieder nicht kompilierbar ist, kannst Du Dich ja nochmal melden.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Object-Dateien neu erstellen

Beitrag von Socke »

Bobface hat geschrieben:Dann ist die unit2.o einfach verschunden. Auch wenn ich z.B. eine .o-Datei manuell anlege (z.B. auf dem Desktop "Test.o") und diese dann in den Ordner ziehe, verschindet die Datei einfach ohne irgendeine Meldung, auch während Lazarus geschlossen ist... Das ist schon ziemlich komisch.

Hast du einen Virus, Trojaner, Root-Kit oder eine Anti-Viren-Software installiert?
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Object-Dateien neu erstellen

Beitrag von Antrepolit »

Lösch die .EXE und compilier es neu. Das hängt an der "bedingten Compilierung". Die .o-Dateien werden neu erstellt bei Änderungen am Quelltext, da der Quelltext die Ahbängigkeit darstellt. Für das Erstellen der Exe sind nun die O-Dateien die Abhängigkeiten. Hat sich also eine O-Datei geändert, muss die gesamte Exe neu erstellt werden. Beim Compile werden also erst Änderungen der Quelltextdateien gesucht - und nicht gefunden. Also denkt der Compiler, er müsse nur eine neue Exe aus den O-Dateien erstellen, was nicht geht, da die O-Dateien fehlen - er kann sie also nicht öffnen. Also: Exe löschen. Dann muss alles inkrementell neu erstellt werden.

Antrepolit
Grüße, Antrepolit

care only if your os is really burning

Antworten