Error while compiling resources

Für Fragen rund um die Ide und zum Debugger

Error while compiling resources

Beitragvon khh » 7. Feb 2010, 18:32 Error while compiling resources

Hallo zusammen,
einige meiner Programme lassen sich mit der neuen LazVersion nicht kompilieren:
09.29
Code: Alles auswählen
Error while compiling resources


und der Cursor steht am Ende der Projektdatei :-(

Wo kann ich nach dem Fehler suchen?


Danke Gruss KH
khh
 
Beiträge: 371
Registriert: 5. Apr 2008, 08:37
Wohnort: Nähe Freiburg i.Br.
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) 
CPU-Target: xxBit
Nach oben

Beitragvon monta » 7. Feb 2010, 18:54 Re: Error while compiling resources

Das liegt an dem Wechsel des ResourcenSystems.

Entferne mal aus deiner Projektdatei (*.lpr) folgende Zeile:
Code: Alles auswählen
{$R project1.res}
Johannes
monta
 
Beiträge: 2861
Registriert: 9. Sep 2006, 17:05
Wohnort: Dresden
OS, Lazarus, FPC: Winux (L 0.9.28/trunk FPC 2.4.0/2.5.1) 
CPU-Target: 32/64Bit
Nach oben

Beitragvon khh » 7. Feb 2010, 19:12 Re: Error while compiling resources

danke dir, jetzt funktioniert zumindest das Compilieren,
leider bleibt das Programm stehen, sobald ein showMessage ausgeführt werden soll :-(

was ist da noch anders??
EDIT: muss wohl an was anderem liegen, in einem test funktioniert das showmessage :-(

und im alten prog hängt er sich dabei auf :-(
Danke Gruss KH
khh
 
Beiträge: 371
Registriert: 5. Apr 2008, 08:37
Wohnort: Nähe Freiburg i.Br.
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) 
CPU-Target: xxBit
Nach oben

Beitragvon khh » 9. Feb 2010, 08:59 Re: Error while compiling resources

monta hat geschrieben:Das liegt an dem Wechsel des ResourcenSystems.

Entferne mal aus deiner Projektdatei (*.lpr) folgende Zeile:
Code: Alles auswählen
{$R project1.res}



gibts da irgendwo was dazu zum nachlesen?
Danke gruss KH
khh
 
Beiträge: 371
Registriert: 5. Apr 2008, 08:37
Wohnort: Nähe Freiburg i.Br.
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) 
CPU-Target: xxBit
Nach oben

Beitragvon monta » 9. Feb 2010, 13:38 Re: Error while compiling resources

Nicht das ich wüsste, lediglich im Changelog vom FPC ist es aufgeführt und neu seit der Version 2.4.0:
viewtopic.php?f=1&t=3324

Und Lazarus im trunk hat dafür auch eine entsprechende Einstellung, die allerdings nicht wirklich ins Auge fällt:

Projekt > Projekteinstellungen > Diverses da findet sich die Auswahl, wenn du das alte Resourcensystem aktivierst, sollte es auch funktionieren, ohne das du die Zeile aus der Projektdatei entfernen musst.
Johannes
monta
 
Beiträge: 2861
Registriert: 9. Sep 2006, 17:05
Wohnort: Dresden
OS, Lazarus, FPC: Winux (L 0.9.28/trunk FPC 2.4.0/2.5.1) 
CPU-Target: 32/64Bit
Nach oben

Beitragvon khh » 10. Feb 2010, 09:43 Re: Error while compiling resources

danke dir

Gruss KH
khh
 
Beiträge: 371
Registriert: 5. Apr 2008, 08:37
Wohnort: Nähe Freiburg i.Br.
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) 
CPU-Target: xxBit
Nach oben

Beitragvon Hitman » 10. Feb 2010, 11:44 Re: Error while compiling resources

Eigentlich ist diese .res Datei doch gerade für das neue Resourcen System. (Delphi-Style)
Das alte hat die .rc Datei über windres eingebunden und die .lfm wurden als .lrs in die Units included. Eben das sollte jetzt alles in die .res Datei gewandert sein.
Der Fehler den du hast könnte daher rühren, dass das Programm "fpcres" nicht gefunden wird (das muss leider im PATH stehen).
Hitman
 
Beiträge: 453
Registriert: 25. Aug 2008, 17:17
Wohnort: Chemnitz
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1 
CPU-Target: x86
Nach oben

Beitragvon khh » 10. Feb 2010, 12:04 Re: Error while compiling resources

Hitman hat geschrieben:Eigentlich ist diese .res Datei doch gerade für das neue Resourcen System. (Delphi-Style)
Das alte hat die .rc Datei über windres eingebunden und die .lfm wurden als .lrs in die Units included. Eben das sollte jetzt alles in die .res Datei gewandert sein.
Der Fehler den du hast könnte daher rühren, dass das Programm "fpcres" nicht gefunden wird (das muss leider im PATH stehen).



ich habe den Eintrag wie von monta empfohlen {$R project1.res} aus der Projektdatei entfernt.
Beim erneuten Einbinden eines Symbols über die Projekteinstellungen hat mir die IDE oder der Compiler (?) den Eintrag wieder in die Projektdatei reingeschrieben.
Erst nachdem ich die *res aus dem Verzeichnis gelöscht habe hat es dann auch funktioniert.
Deshalb auch meine Frage, ob es irgendwo was nachzulesengibt, was da eigentlich genau abläuft.

Gruss KH
khh
 
Beiträge: 371
Registriert: 5. Apr 2008, 08:37
Wohnort: Nähe Freiburg i.Br.
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) 
CPU-Target: xxBit
Nach oben

Beitragvon Hitman » 10. Feb 2010, 12:37 Re: Error while compiling resources

Naja alle Resourcen (Icons, Version Information, ...) werden in die .res Datei geschrieben. Diese wird an die exe integriert. Ende. ;-)
Hitman
 
Beiträge: 453
Registriert: 25. Aug 2008, 17:17
Wohnort: Chemnitz
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1 
CPU-Target: x86
Nach oben

Beitragvon khh » 10. Feb 2010, 16:13 Re: Error while compiling resources

Hitman hat geschrieben:Naja alle Resourcen (Icons, Version Information, ...) werden in die .res Datei geschrieben. Diese wird an die exe integriert. Ende. ;-)


ach sooo, ganz einfach, gell ;-)


Danke dir

Gruss KHH
khh
 
Beiträge: 371
Registriert: 5. Apr 2008, 08:37
Wohnort: Nähe Freiburg i.Br.
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) 
CPU-Target: xxBit
Nach oben

Beitragvon didi » 16. Aug 2010, 23:50 Re: Error while compiling resources

Moin,
der Thread ist zwar etwas älter, aber ich habe den Fehler bekommen, als ich den Ordner umbenannt habe, in dem das Projekt gespeichert ist.
Nach nochmaligen Umbenennen in den Ursprungsname konnte ich wieder problemlos übersetzen.

Version: 0.9.29
System: Pardus-Linux

Gruß didi ><>
didi
 
Beiträge: 15
Registriert: 10. Mai 2010, 19:43
Wohnort: Plauen im Vogtland
OS, Lazarus, FPC: Pardus-Linux 
CPU-Target: AMD 32-Bit
Nach oben

Beitragvon corpsman » 17. Aug 2010, 07:51 Re: Error while compiling resources

Also wenn ich meine alten Projekte auf das neue Ressourcen System umstelle, dann lösche ich immer alle

{$R project1.res}

Einträge in allen Units (und der Projektdatei)

und anschließend schreibe ich in alle Units, welche eine TForm beinhalten

{$R *.lfm}

Natürlich das Umstellen in den Projekteinstellungen nicht vergessen.

Sämtlichen unnötigen Dateien wie *.res etc. werden von meinem System automatisch gelöscht...
--
Just try it
corpsman
 
Beiträge: 302
Registriert: 28. Feb 2009, 08:54
OS, Lazarus, FPC: Kubuntu Lucid, SVN Lazarus, FPC 2.4.0 
CPU-Target: 32Bit
Nach oben

Beitragvon Hitman » 17. Aug 2010, 11:19 Re: Error while compiling resources

Das neue Ressourcen-System nutzt ja aber immernoch die .res ... für Versions Info, Icons, etc.
Das alte hingegen hat .rc benutzt.
Hitman
 
Beiträge: 453
Registriert: 25. Aug 2008, 17:17
Wohnort: Chemnitz
OS, Lazarus, FPC: ArchLinux x86, WinVista x86-64, Lazarus 0.9.29, FPC 2.4.1 
CPU-Target: x86
Nach oben

Beitragvon Socke » 17. Aug 2010, 16:56 Re: Error while compiling resources

Hitman hat geschrieben:Das neue Ressourcen-System nutzt ja aber immernoch die .res ... für Versions Info, Icons, etc.
Das alte hingegen hat .rc benutzt.

Mit FPC und Lazarus kommt man in den Genuss verschiedenster Daten, die alle Ressource oder auf Englisch "resources" heißen.
Die "alte" Variante ist komplett in der Unit LResources implementiert. Dazu werden alle Ressourcen als Strings in eine global verfügbare Liste eingetragen. Bei einem Formular wird die .lfm-Datei mit lazres in eine .lrs-Datei übersetzt. Eigentlich wird nur ein Funktionsaufruf um die eigentlichen Daten herum gesetzt und diese Funktion dann im Initalization-Abschnitt der Unit aufgerufen (die Datei wird über den Include-Befehl {$I datei} eingefügt).
Dann gibt es schon seit langem die Resource-Strings. Die werden vom FPC beim Kompilieren in eine .rst-Datei geschrieben (und können ggf. in eine .po-Datei zum Übersetzten weiterverarbeitet werden).
Die "neuen" Ressourcen im FPC werden unter Windows schon seit einigen Jahren eingesetzt. Dabei wird zuerst ein Resource-Script (.rc) erstellt, welchen dann mit dem Programm windres in eine Binäre Ressourcendatei (.res) übersetzt wird. Diese Ressourcendatei wird dann vom Linker in die Executables hinein gelinkt (eine Executable kann man in mehrere Abschnitte einteilen, die Programmcode, Feunktionstabellen (-> Bibltiotheken) oder auch Ressourcen enthalten). Der Compiler-Schalter {$R datei} kann sowohl ein Resourcen-Script als auch eine Ressourcen-Binärdatei angeben.

Im Grunde genommen gibt es kein "altes" und keine "neues" Ressourcen-System. Beide werden schon lange unterstützt, da die eigentliche Arbeit entweder vom Compiler (-> Include Datei) oder durch den Linker übernommen wird. Das wirklich neue daran ist, dass das Windows-Ressourcen-System nun plattformübergreifend unter Windows und POSIX (Linux/Mac) verfügbar ist. Unter Nicht-Windows ist es eher üblich, eine externe Datei (für bspw. eine Grafik) anzulegen als alles in eine Datei zu packen.

Ich hoffe, ein wenig Klarheit in die Sache gebracht zu haben.
MfG Socke
Socke
 
Beiträge: 561
Registriert: 22. Jul 2008, 18:27
OS, Lazarus, FPC: L 0.9.29 (trunk) FPC 2.5.1 Debian Lenny (x86)/cross ARM WinCE 5.0 
CPU-Target: 32bit x86/ARMv4
Nach oben

• Themenende •

Zurück zu Benutzung der IDE



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

accuracy-worried