FPC ohne Lazarus bringt seltsame Fehlermeldung

Für Fragen rund um die Ide und zum Debugger
braunbär
Beiträge: 408
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
CPU-Target: 64Bit
Wohnort: Wien

FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von braunbär »

Hi!
Nachdem ich für das Testen meines Pipe Projekts an zwei "Projekten" gleichzeitig arbeiten muss, würde ich dafür gerne einen anderen Editor verwenden und den FPC direkt von der Befehlszeile aufrufen. Irgendwas stimmt da nicht. Aus Lazarus heraus compiliert der FPC ohne Fehler. Wenn ich den FPC von cmd aus direkt aufrufe, kommen ganz eigenartige Fehlermeldungen:

Code: Alles auswählen

c:\MariaDB>c:\lazarus\fpc\3.2.2\bin\x86_64-win64\fpc.exe pipeserver.lpr
Free Pascal Compiler version 3.2.2 [2024/09/29] for x86_64
Copyright (c) 1993-2021 by Florian Klaempfl and others
Target OS: Win64 for x64
Compiling pipeserver.lpr
pipeserver.lpr(22,3) Error: Identifier not found "raise"
pipeserver.lpr(22,9) Fatal: Syntax error, ";" expected but "identifier EXCEPTION" found
Fatal: Compilation aborted
Error: c:\lazarus\fpc\3.2.2\bin\x86_64-win64\ppcx64.exe returned an error exitcode


Anscheinend brauche ich irgend einen FPC Parameter, damit FPC die Exception Syntax versteht - ich habe aber keine Ahnung, was da anzugeben ist. Die entsprechende Zeile:

Code: Alles auswählen

procedure fehler(const s: string);
begin
  raise Exception.Create('Fehler ' + IntToStr(getlasterror) + ' ' + s) ;
end;

Benutzeravatar
theo
Beiträge: 10707
Registriert: Mo 11. Sep 2006, 19:01

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von theo »

Wahrscheinlich musst du den ObjFPC Modus einschalten:
https://www.freepascal.org/docs-html/pr ... gse76.html

braunbär
Beiträge: 408
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
CPU-Target: 64Bit
Wohnort: Wien

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von braunbär »

Danke, das wars. Die Seite hatte ich mir sogar angeschaut, aber dass es neben dem Default-Mode FPC noch den anderen Mode OBJFPC gibt, habe ich dabei übersehen. Wozu der Mode FPC dann eigentlich überhaupt dient, und warum im Default Modus Exceptions nicht inkludiert sind, verstehe ich nicht ganz, aber egal - jetzt läuft es.

Joh
Lazarusforum e. V.
Beiträge: 271
Registriert: Sa 26. Mai 2012, 17:31
OS, Lazarus, FPC: Win 10 (L 2.2.6 x64 FPC 3.2.2)
CPU-Target: 64Bit

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von Joh »

Nur mal so als Idee:

per fpcupdeluxe eine 2. Session aufmachen, dann hast du für beide Projekte die gewohnte Umgebung?!
just my two Beer

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6533
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von af0815 »

Joh hat geschrieben: Sa 4. Jan 2025, 09:06 Nur mal so als Idee:

per fpcupdeluxe eine 2. Session aufmachen, dann hast du für beide Projekte die gewohnte Umgebung?!
Wozu brauchst du da fpcupdeluxe ? Ich kann mehere Instanzen von Lazarus so öffnen. Bzw. die kompilierten Dateien direkt starten (innerhalb und ausserhalb von Lazarus). Das hat absolut nichts mit dem Installer fpcupdeluxe zu tun.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

braunbär
Beiträge: 408
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
CPU-Target: 64Bit
Wohnort: Wien

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von braunbär »

Lazarus ist dank des integrierten Formulardesigners eine geniale Oberfläche für das Erstellen von formularbasierten Programmen. Aber als reiner Texteditor für ein Konsolenprogramm ist mir PsPad eigentlich lieber, das hat einige Features, die wie mir scheint im Lazarus Editor fehlen, wie z.B. die automatische Vervollständigung von Variablennamen (dabei könnte das Lazarus viel besser können, weil es besser weiß, welche Bezeichner an einer bestimmten Stelle erlaubt sind)

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6533
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von af0815 »

braunbär hat geschrieben: Sa 4. Jan 2025, 09:35Aber als reiner Texteditor für ein Konsolenprogramm ist mir PsPad eigentlich lieber, das hat einige Features, die wie mir scheint im Lazarus Editor fehlen, wie z.B. die automatische Vervollständigung von Variablennamen (dabei könnte das Lazarus viel besser können, weil es besser weiß, welche Bezeichner an einer bestimmten Stelle erlaubt sind)
1) Häh - was hast du da für eine komische Lazarusinstallation, ich bekomme die Variablen vervollständigt wenn ich will. CTRL + SPACE bei mir, manuell. Tools-> Options-> Editor->Completion and Hints dort kann man das Einstellen wann das kommen soll.

2) Wenn man einen anderen Editor verwendet, dann sollte der auch richtig konfiguriert werden, das der die Gebräuche und Notwendigkeiten vom FPC beachtet. Wird sowieso dann schwieriger, wenn du viel mit verstreuten Units arbeitest. Aber das kann sich jeder selbst aussuchen, wie er sich Arbeit beschafft.
Screenshot 2025-01-04 094448.jpg
Screenshot 2025-01-04 094448.jpg (66.11 KiB) 1101 mal betrachtet
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

braunbär
Beiträge: 408
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 3.6, FPC 3.2.2
CPU-Target: 64Bit
Wohnort: Wien

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von braunbär »

Ich erinnere mich jetzt dunkel, dass es sowas in Lazarus gibt, dass ich es aber wegen leicht skurriler Ergebnisse nicht weiter verwendet habe. Ich habe jetzt geschaut, ob es mittlerweile besser funktioniert, aber so wie es aussieht, nicht gar so.

Hier der Schirm vor dem Drücken von ^J, Der Cursor steht hinter dem eben getippten h und ich hätte mir eine Vervollständigung auf hPipe erwartet:
Bild

Und das kommt nach dem Drücken von ^J heraus:
Bild

Ich habe dem damals keine große Bedeutung beigemessen und das Lazarus-Feature als nicht wirklich verwendbar abgehakt...

Übrigens, das Programm (ohne das h) kompiliert einwandfrei, also wird die Autovervollständigung nicht durch einen vorherigen Fehler im Code verwirrt.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1537
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von fliegermichl »

braunbär hat geschrieben: Sa 4. Jan 2025, 00:00 Danke, das wars. Die Seite hatte ich mir sogar angeschaut, aber dass es neben dem Default-Mode FPC noch den anderen Mode OBJFPC gibt, habe ich dabei übersehen. Wozu der Mode FPC dann eigentlich überhaupt dient, und warum im Default Modus Exceptions nicht inkludiert sind, verstehe ich nicht ganz, aber egal - jetzt läuft es.
Die Standardeinstellung des FPC ist Turbo Pascal. Das kannte noch keine Exceptions.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6533
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von af0815 »

braunbär hat geschrieben: Sa 4. Jan 2025, 10:34 Hier der Schirm vor dem Drücken von ^J, Der Cursor steht hinter dem eben getippten h und ich hätte mir eine Vervollständigung auf hPipe erwartet:
Was willst du da mit ^J machen. Ich habe oben geschrieben CNTRL + SPACE (= auf deutsch STRG + Leertaste) bei mir.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 501
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 3.7 Fpc 3.2.3 und Laz 3.0 Fpc

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von Niesi »

braunbär hat geschrieben: Sa 4. Jan 2025, 10:34
Hier der Schirm vor dem Drücken von ^J, Der Cursor steht hinter dem eben getippten h und ich hätte mir eine Vervollständigung auf hPipe erwartet:
Ich habe da einen Vorschlag: Bevor Du uns in unserem Lazarusforum berichtest, dass Du anstelle von Lazarus was anderes verwenden willst, solltest Du vielleicht mal schauen, was Lazarus so alles kann. Und natürlich auch, welche Shortcuts wofür zu verwenden sind.

https://wiki.freepascal.org/Lazarus_IDE_Shortcuts

Bei mir funktioniert beispielsweise die Vervollständigung einwandfrei ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6533
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von af0815 »

Niesi hat geschrieben: So 5. Jan 2025, 09:39 https://wiki.freepascal.org/Lazarus_IDE_Shortcuts
Den Link habe ich mir verkniffen, die Info dort gehört dringend überarbeitet - Das ist nur Apple Style / Mac OS. Ja einiges stimmt, aber es gehört überarbeitet.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Niesi
Lazarusforum e. V.
Beiträge: 501
Registriert: So 26. Jun 2016, 19:44
OS, Lazarus, FPC: Linux Mint Cinnamon, Laz 3.7 Fpc 3.2.3 und Laz 3.0 Fpc

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von Niesi »

af0815 hat geschrieben: So 5. Jan 2025, 11:10 Den Link habe ich mir verkniffen, die Info dort gehört dringend überarbeitet - Das ist nur Apple Style / Mac OS. Ja einiges stimmt, aber es gehört überarbeitet.
Das ist natürlich weniger schön ... ok, die hier noch:

https://wiki.freepascal.org/Lazarus_IDE_Tools/de

Da ist auf jeden Fall nochmal zu sehen, dass Code-Vervollständigung mit STRG + Leertaste geht ...
Wissen ist das einzige Gut, das sich vermehrt, wenn es geteilt wird ...

PascalDragon
Beiträge: 904
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von PascalDragon »

braunbär hat geschrieben: Sa 4. Jan 2025, 00:00 Danke, das wars. Die Seite hatte ich mir sogar angeschaut, aber dass es neben dem Default-Mode FPC noch den anderen Mode OBJFPC gibt, habe ich dabei übersehen. Wozu der Mode FPC dann eigentlich überhaupt dient, und warum im Default Modus Exceptions nicht inkludiert sind, verstehe ich nicht ganz, aber egal - jetzt läuft es.
Modus FPC entspricht im Endeffekt dem Turbo Pascal Modus (TP) mit ein paar Erweiterungen, genauso wie ObjFPC dem Delphi Modus mit ein paar Erweiterungen entspricht. Sowohl ObjFPC als auch Delphi Modus kamen später, um also Kompatibilität mit existierendem Code zu wahren, ist und bleibt der Standardmodus FPC und nicht ObjFPC.
Und Exceptions sind eben Teil der Object Pascal basierten Modi ObjFPC und Delphi und daher nicht im Standardmodus selbst verfügbar.
FPC Compiler Entwickler

Warf
Beiträge: 2080
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: FPC ohne Lazarus bringt seltsame Fehlermeldung

Beitrag von Warf »

Wenn du ein Lazarus Projekt außerhalb von Lazarus weiterentwickeln willst gibt dir Lazarus die Möglichkeit den Bauprozess den es verwendet als Kommandozeilenaufruf anzuzeigen bzw. dir sogar einen Makefile zu generieren.

Projekteinstellungen -> CompilerEinstellungen -> Compiler-Kommandos. Dort kannst du einen Makefile anlegen lassen. Ansonsten mit dem Button ganz unten im Einstellungsfenster ist "Einstellungen Anzeigen" was dir anzeigt was für Parameter Lazarus an den FPC übergibt beim Kompilieren.
Alternativ kannst du auch das Lazbuild Kommandozeilenprogramm benutzen was Lazarus mitliefert um dein Projekt zu bauen (und in gewissem Maße zu konfigurieren), sodass du das Lazarus Buildsystem voll ausnutzen kannst, ohne dich an den Lazarus Editor zu binden.

Zu der Lazarus vs anderer Editor Diskussion sag ich mal nur so viel, gibt genug Gründe was anderes als Lazarus verwenden zu wollen (z.B. Kein integrierter Terminal Emulator, keine Vimkey steuerung, keine ligature fonts, kein/kaum support anderer Programmiersprachen/extensions, etc.)
Lazarus ist ein echt guter Editor, aber es ist eben nur ein Editor mit gewissen Designentscheidungen und manchmal hat man andere präferenzen.

Antworten