Difference between revisions of "InstantFPC/de"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting; deleted category included in page template)
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{InstantFPC}}
 
{{InstantFPC}}
<br>
+
 
<br>
 
Dieser Artikel beschäftigt sich mit der Linuxund Windows Programmierung.<br>
 
 
__TOC__
 
__TOC__
 +
 
=Überblick=
 
=Überblick=
InstantFPC erlaubt es Pascalskripte unter Linux, BSD, OS X und Windows auszuführen.<br>
+
 
 +
InstantFPC erlaubt es, Pascal Skripte unter Linux, BSD, OS X und Windows auszuführen.
 +
 
 
==Unter Linux==
 
==Unter Linux==
Beispiel für ein Pascalskript unter Linux:<br>
+
 
<syntaxhighlight>
+
Beispiel für ein Pascal Skript unter Linux:
 +
 
 +
<syntaxhighlight lang=pascal>
 
#!/usr/bin/env instantfpc
 
#!/usr/bin/env instantfpc
 
begin
 
begin
   writeln('Hello fpc user');
+
   writeln('Hallo FPC Programmierer');
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
Speichern Sie die Datei test.sh und vergeben Sie Ihr die nötigen Rechte zum Ausführen und führen Sie die Datei dann aus.<br>
+
 
Beispiel:<br>
+
Speichern Sie die Datei als "test.sh" und vergeben Sie Ihr die nötigen Rechte zum Ausführen und führen Sie die Datei dann aus.
<syntaxhighlight lang="bash">
+
 
 +
Beispiel:
 +
 
 +
<syntaxhighlight lang="bash">
 
chmod 755 test.sh
 
chmod 755 test.sh
 
./test.sh
 
./test.sh
Hello fpc user
+
Hallo FPC Programmierer
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
Selbstverständlich können Sie Ihrem Pascalskript Parameter übergeben.<br>
+
Sie können dem Pascal Skript Parameter übergeben:
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=pascal>
 
#!/usr/bin/env instantfpc
 
#!/usr/bin/env instantfpc
 
var
 
var
Line 31: Line 38:
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
Speichern Sie die Datei als test1.sh, geben Sie Ihr Rechte zum ausführen und führen Sie das Programm aus.<br>
+
Speichern Sie die Datei als test1.sh, geben Sie Ihr Rechte zum ausführen und führen Sie das Programm aus.
<syntaxhighlight lang="bash">
+
 
 +
<syntaxhighlight lang=bash>
 
chmod 755 test1.sh
 
chmod 755 test1.sh
 
./test1.sh A B
 
./test1.sh A B
Line 40: Line 48:
 
B
 
B
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
 +
Übung: Wie können Pascal Skripte, welche sich gegenseitig aufrufen, Parameter hinauf- und herabgeben, so wie es mit bash Skripten möglich ist?
 +
 
 
== Unter Windows==
 
== Unter Windows==
Beispiel, wie ein Pascalskript aussieht:<br>
+
 
<syntaxhighlight>
+
Beispiel, wie ein Pascalskript aussieht:
 +
 
 +
<syntaxhighlight lang=pascal>
 
begin
 
begin
   writeln('Hello fpc user');
+
   writeln('Hallo FPC Programmierer');
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
Speichern Sie die Datei test.sh und vergeben Sie Ihr die nötigen Rechte zum Ausführen und führen Sie die Datei dann aus.<br>
+
 
Beispiel:<br>
+
Speichern Sie die Datei test.sh und vergeben Sie Ihr die nötigen Rechte zum Ausführen und führen Sie die Datei dann aus.
<syntaxhighlight>
+
 
 +
Beispiel:
 +
 
 +
<syntaxhighlight lang=DOS>
 
C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc test.sh
 
C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc test.sh
Hello fpc user
+
Hallo FPC Programmierer
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
Selbstverständlich können Sie Ihrem Pascalskript Parameter übergeben.<br>
+
Selbstverständlich können Sie Ihrem Pascalskript Parameter übergeben.
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=pascal>
 
var
 
var
 
   i: Integer;
 
   i: Integer;
Line 63: Line 79:
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
Speichern Sie die Datei als test1.sh, geben Sie Ihr Rechte zum ausführen und führen Sie das Programm aus.<br>
+
Speichern Sie die Datei als test1.sh, geben Sie Ihr Rechte zum ausführen und führen Sie das Programm aus.
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=DOS>
 
C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc test1.sh A B
 
C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc test1.sh A B
 
A
 
A
 
B
 
B
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
 
  
 
=Download=
 
=Download=
InstantFPC ist im Lieferumfang von Lazarus enthalten.<br>
+
 
<br>
+
InstantFPC ist im Lieferumfang von Lazarus enthalten.
  
 
=Die Parameter von InstantFPC=
 
=Die Parameter von InstantFPC=
Line 84: Line 100:
 
*'''--compiler=<Pfad zum Compiler>''' verwendet den Compiler im Pfad. Als Standard wird FPC in $Path bzw. %Path% gesucht.
 
*'''--compiler=<Pfad zum Compiler>''' verwendet den Compiler im Pfad. Als Standard wird FPC in $Path bzw. %Path% gesucht.
 
*'''--skip-run''': Do not execute the program. Useful to test if script compiles. Best combined with -B.
 
*'''--skip-run''': Do not execute the program. Useful to test if script compiles. Best combined with -B.
*Environment variable '''INSTANTFPCCACHE''': Setzt das Cacheverzeichnis fest. --get-cache kann das Verzeichnis überschreiben.
+
*Umgebungsvariable '''INSTANTFPCCACHE''': Setzt das Cacheverzeichnis fest. --get-cache kann das Verzeichnis überschreiben.
*Environment variable '''INSTANTFPCOPTIONS''': Optionen, die an den Compiler übergeben werden. Diese Optionen werden vor den Parametern übergeben.
+
*Umgebungsvariable '''INSTANTFPCOPTIONS''': Optionen, die an den Compiler übergeben werden. Diese Optionen werden vor den Parametern übergeben.
<br>
 
  
 
=Parameterübergabe an InstantFPC=
 
=Parameterübergabe an InstantFPC=
Compiler-Parameter können in der Kopfzeile übergeben werden. Hinweis: Den Befehl 'env' können Sie nicht verwenden.<br>
+
 
<syntaxhighlight lang="bash">
+
==Unter Linux==
 +
 
 +
Compiler-Parameter können in der Kopfzeile übergeben werden. Hinweis: Den Befehl 'env' können Sie nicht verwenden.
 +
 
 +
<syntaxhighlight lang=pascal>
 
#!/usr/bin/instantfpc -O1 -Ci
 
#!/usr/bin/instantfpc -O1 -Ci
 
begin
 
begin
 +
  WriteLn('Hallo');
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
Und / Oder Sie können Compiler-Optionen in der Umgebungsvariable '''INSTANTFPCOPTIONS''' setzen:<br>
+
 
 +
Und / Oder Sie können Compiler-Optionen in der Umgebungsvariable '''INSTANTFPCOPTIONS''' setzen:
 +
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
export INSTANTFPCOPTIONS="-Fu~/lazarus/components/codetools/units/x86_64-linux/"
 
export INSTANTFPCOPTIONS="-Fu~/lazarus/components/codetools/units/x86_64-linux/"
 
</syntaxhighlight>
 
</syntaxhighlight>
<syntaxhighlight lang="bash">
+
 
 +
<syntaxhighlight lang=pascal>
 
#!/usr/bin/instantfpc
 
#!/usr/bin/instantfpc
 
uses FileProcs; // Die Unit FileProcs befindet sich im Ordner ../Lazarus/components/codetools
 
uses FileProcs; // Die Unit FileProcs befindet sich im Ordner ../Lazarus/components/codetools
Line 105: Line 128:
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
 +
== Unter Windows ==
 +
 
 +
Compiler-Parameter können in der Kopfzeile übergeben werden. Hinweis: Den Befehl 'env' können Sie nicht verwenden.<br>
 +
Programmkörper des Pascal Skriptes:<br>
 +
 
 +
<syntaxhighlight lang=pascal>
 +
begin
 +
  WriteLn('Hallo');
 +
end.
 +
</syntaxhighlight>
 +
 
 +
Temporäres erweitern der Windows-Pfadvariable:
 +
 
 +
<syntaxhighlight lang=DOS>
 +
SET PATH=%PATH%;C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64
 +
</syntaxhighlight>
 +
Aufruf des Pascal Skriptes:
 +
 
 +
<syntaxhighlight lang=DOS>
 +
instantfpc -O1 -Ci test.sh
 +
</syntaxhighlight>
  
 
=Beispiel für ein InstantFPC-Skript =
 
=Beispiel für ein InstantFPC-Skript =
Im folgenden Beispiel für Linux liefert das Skript das Numeronym einer Zeichenfolge (z. B. bei '''i18n''' für internationalization).<br>
+
 
Das zu numeronymisierende Wort kann als Parameter oder über einen Dialog eingegeben werden.<br>
+
==Unter Linux==
 +
 
 +
Im folgenden Beispiel für Linux liefert das Skript das Numeronym einer Zeichenfolge (z. B. bei '''i18n''' für internationalization).
 +
 
 +
Das zu numeronymisierende Wort kann als Parameter oder über einen Dialog eingegeben werden.
 +
 
 +
Das Pascalscript speichern Sie unter dem Namen test.sh:
 +
 
 +
<syntaxhighlight lang=pascal>
 +
#!/usr/bin/env instantfpc
 +
uses
 +
  SysUtils;
 +
 
 +
var
 +
  strWord: String;
 +
 
 +
begin 
 +
  if ParamStr(1) = '' then
 +
  begin
 +
    write('Bitte gebe das zu numeronymisierende Wort ein: ');
 +
    readln(strWord);
 +
  end
 +
  else
 +
    strWord := ParamStr(1);
 +
 
 +
  if length(strWord) > 2 then
 +
    writeln(strWord[1] + IntToStr(length(strWord)-2) + strWord[length(strWord)])
 +
  else
 +
    writeln('keine Angaben');
 +
end.
 +
</syntaxhighlight>
 +
 
 +
Geben Sie dem Pascalskript die nötigen Rechte und führen Sie es dann aus:
 +
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
#!/usr/bin/env instantfpc
+
chmod 755 test.sh
 +
./test.sh
 +
</syntaxhighlight>
 +
 
 +
== Unter Windows ==
 +
 
 +
Im folgenden Beispiel für Windows liefert das Skript das Numeronym einer Zeichenfolge (z. B. bei '''i18n''' für internationalization).
 +
 
 +
Das zu numeronymisierende Wort kann als Parameter oder über einen Dialog eingegeben werden.
 +
 
 +
Das Pascalskript speichern Sie unter dem Namen test.sh:
 +
 
 +
<syntaxhighlight lang=pascal>
 
uses
 
uses
 
   SysUtils;
 
   SysUtils;
Line 130: Line 219:
 
     writeln(strWord[1] + IntToStr(length(strWord)-2) + strWord[length(strWord)])
 
     writeln(strWord[1] + IntToStr(length(strWord)-2) + strWord[length(strWord)])
 
   else
 
   else
     writeln('N/A');
+
     writeln('keine Angaben');
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
+
 
 +
Aufruf des Pascalskriptes:
 +
 
 +
<syntaxhighlight lang="DOS">
 +
C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc.exe test.sh
 +
</syntaxhighlight>
  
 
=InstantFPC mit Lazarus verwenden=
 
=InstantFPC mit Lazarus verwenden=
<br>
+
 
==InstantFPC unter Linux mit Lazarus compilieren==
+
==Unter Linux==
Wie man ein Lazarusprojekt mit instantfpc compiliert.<br>
+
 
Folgendes wird benötigt:<br>
+
===InstantFPC mit Lazarus compilieren===
* Die Hauptdatei des Projektes ist eine InstantFPC Datei.<br>
+
 
Einstellungen:<br>
+
Wie man ein Lazarusprojekt mit instantfpc compiliert.
 +
 
 +
Folgendes wird benötigt:
 +
 
 +
* Die Hauptdatei des Projektes ist eine InstantFPC Datei.
 +
 
 +
Einstellungen:
 +
 
 
* Klicken Sie im Lazarus Hauptmenü auf Projekt -> Projekteinstellungen -> Compilereinstellungen -> Kompilierung
 
* Klicken Sie im Lazarus Hauptmenü auf Projekt -> Projekteinstellungen -> Compilereinstellungen -> Kompilierung
 
* Entfernen Sie alle Häkchen aus den Zeilen die mit '''Aufruf an:''' beginnen
 
* Entfernen Sie alle Häkchen aus den Zeilen die mit '''Aufruf an:''' beginnen
 
* Setzen Sie in der Gruppe '''Vorher ausführen''' in die Zeile die mit '''Befehl''' beginnt folgenden Text ein:
 
* Setzen Sie in der Gruppe '''Vorher ausführen''' in die Zeile die mit '''Befehl''' beginnt folgenden Text ein:
 +
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
instantfpc --skip-run -B -gl "-Fu$(ProjUnitPath)" $Name($(ProjFile))
 
instantfpc --skip-run -B -gl "-Fu$(ProjUnitPath)" $Name($(ProjFile))
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 
* Setzen Sie in der Zeile '''Nach Meldungen suchen''' bei den Kästchen '''make''' und '''FPC''' die Häkchen.
 
* Setzen Sie in der Zeile '''Nach Meldungen suchen''' bei den Kästchen '''make''' und '''FPC''' die Häkchen.
  
==InstantFPC mit Lazarus debugen==
+
===InstantFPC mit Lazarus debugen===
Hinweis: Die Einstellungen haben LINUX-Syntax.<br>
+
 
 
* Machen Sie die Einstellungen wie im Abschnitt '''InstantFPC mit Lazarus compilieren''' beschrieben.
 
* Machen Sie die Einstellungen wie im Abschnitt '''InstantFPC mit Lazarus compilieren''' beschrieben.
 
* Klicken Sie im Hauptmenü auf Start -> Startparameter
 
* Klicken Sie im Hauptmenü auf Start -> Startparameter
Line 158: Line 261:
 
* Geben Sie im Dialog '''Arbeitsverzeichnis''' folgendes ein:
 
* Geben Sie im Dialog '''Arbeitsverzeichnis''' folgendes ein:
 
  $(ProjPath)
 
  $(ProjPath)
<br>
 
<br>
 
  
[[Category:Tutorials/de]][[Category:Console/de]]{{AutoCategory}}
+
= Siehe auch =
 +
 
 +
* [[Console/de|Konsolenseite]]

Latest revision as of 14:45, 17 February 2020

Deutsch (de) English (en) français (fr)

Überblick

InstantFPC erlaubt es, Pascal Skripte unter Linux, BSD, OS X und Windows auszuführen.

Unter Linux

Beispiel für ein Pascal Skript unter Linux:

#!/usr/bin/env instantfpc
begin
  writeln('Hallo FPC Programmierer');
end.

Speichern Sie die Datei als "test.sh" und vergeben Sie Ihr die nötigen Rechte zum Ausführen und führen Sie die Datei dann aus.

Beispiel:

chmod 755 test.sh
./test.sh
Hallo FPC Programmierer

Sie können dem Pascal Skript Parameter übergeben:

#!/usr/bin/env instantfpc
var
  i: Integer;
begin
  for i:=0 to ParamCount do writeln(ParamStr(i));
end.

Speichern Sie die Datei als test1.sh, geben Sie Ihr Rechte zum ausführen und führen Sie das Programm aus.

chmod 755 test1.sh
./test1.sh A B
/home/testuser/.cache/instantfpc/test1
A
B

Übung: Wie können Pascal Skripte, welche sich gegenseitig aufrufen, Parameter hinauf- und herabgeben, so wie es mit bash Skripten möglich ist?

Unter Windows

Beispiel, wie ein Pascalskript aussieht:

begin
  writeln('Hallo FPC Programmierer');
end.

Speichern Sie die Datei test.sh und vergeben Sie Ihr die nötigen Rechte zum Ausführen und führen Sie die Datei dann aus.

Beispiel:

C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc test.sh
Hallo FPC Programmierer

Selbstverständlich können Sie Ihrem Pascalskript Parameter übergeben.

var
  i: Integer;
begin
  for i:=0 to ParamCount do writeln(ParamStr(i));
end.

Speichern Sie die Datei als test1.sh, geben Sie Ihr Rechte zum ausführen und führen Sie das Programm aus.

C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc test1.sh A B
A
B

Download

InstantFPC ist im Lieferumfang von Lazarus enthalten.

Die Parameter von InstantFPC

  • -h: Hilfe
  • -v: Ausgabe der aktuellen Version
  • --get-cache: gibt das aktuelle Cacheverzeichnis aus
  • --set-cache=<directory>: Bestimmt ein Verzeichnis zum Cacheverzeichnis
  • -B: Kompiliert bei gültigem Cacheverzeichnis
  • --compiler=<Pfad zum Compiler> verwendet den Compiler im Pfad. Als Standard wird FPC in $Path bzw. %Path% gesucht.
  • --skip-run: Do not execute the program. Useful to test if script compiles. Best combined with -B.
  • Umgebungsvariable INSTANTFPCCACHE: Setzt das Cacheverzeichnis fest. --get-cache kann das Verzeichnis überschreiben.
  • Umgebungsvariable INSTANTFPCOPTIONS: Optionen, die an den Compiler übergeben werden. Diese Optionen werden vor den Parametern übergeben.

Parameterübergabe an InstantFPC

Unter Linux

Compiler-Parameter können in der Kopfzeile übergeben werden. Hinweis: Den Befehl 'env' können Sie nicht verwenden.

#!/usr/bin/instantfpc -O1 -Ci
begin
  WriteLn('Hallo');
end.

Und / Oder Sie können Compiler-Optionen in der Umgebungsvariable INSTANTFPCOPTIONS setzen:

export INSTANTFPCOPTIONS="-Fu~/lazarus/components/codetools/units/x86_64-linux/"
#!/usr/bin/instantfpc
uses FileProcs; // Die Unit FileProcs befindet sich im Ordner ../Lazarus/components/codetools
begin
end.

Unter Windows

Compiler-Parameter können in der Kopfzeile übergeben werden. Hinweis: Den Befehl 'env' können Sie nicht verwenden.
Programmkörper des Pascal Skriptes:

begin
  WriteLn('Hallo');
end.

Temporäres erweitern der Windows-Pfadvariable:

SET PATH=%PATH%;C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64

Aufruf des Pascal Skriptes:

instantfpc -O1 -Ci test.sh

Beispiel für ein InstantFPC-Skript

Unter Linux

Im folgenden Beispiel für Linux liefert das Skript das Numeronym einer Zeichenfolge (z. B. bei i18n für internationalization).

Das zu numeronymisierende Wort kann als Parameter oder über einen Dialog eingegeben werden.

Das Pascalscript speichern Sie unter dem Namen test.sh:

#!/usr/bin/env instantfpc
uses
  SysUtils;
  
var
  strWord: String;
  
begin  
  if ParamStr(1) = '' then
  begin
    write('Bitte gebe das zu numeronymisierende Wort ein: ');
    readln(strWord);
  end
  else
    strWord := ParamStr(1);
  
  if length(strWord) > 2 then
    writeln(strWord[1] + IntToStr(length(strWord)-2) + strWord[length(strWord)])
  else
    writeln('keine Angaben');
end.

Geben Sie dem Pascalskript die nötigen Rechte und führen Sie es dann aus:

chmod 755 test.sh
./test.sh

Unter Windows

Im folgenden Beispiel für Windows liefert das Skript das Numeronym einer Zeichenfolge (z. B. bei i18n für internationalization).

Das zu numeronymisierende Wort kann als Parameter oder über einen Dialog eingegeben werden.

Das Pascalskript speichern Sie unter dem Namen test.sh:

uses
  SysUtils;
  
var
  strWord: String;
  
begin  
  if ParamStr(1) = '' then
  begin
    write('Bitte gebe das zu numeronymisierende Wort ein: ');
    readln(strWord);
  end
  else
    strWord := ParamStr(1);
  
  if length(strWord) > 2 then
    writeln(strWord[1] + IntToStr(length(strWord)-2) + strWord[length(strWord)])
  else
    writeln('keine Angaben');
end.

Aufruf des Pascalskriptes:

C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64\instantfpc.exe test.sh

InstantFPC mit Lazarus verwenden

Unter Linux

InstantFPC mit Lazarus compilieren

Wie man ein Lazarusprojekt mit instantfpc compiliert.

Folgendes wird benötigt:

  • Die Hauptdatei des Projektes ist eine InstantFPC Datei.

Einstellungen:

  • Klicken Sie im Lazarus Hauptmenü auf Projekt -> Projekteinstellungen -> Compilereinstellungen -> Kompilierung
  • Entfernen Sie alle Häkchen aus den Zeilen die mit Aufruf an: beginnen
  • Setzen Sie in der Gruppe Vorher ausführen in die Zeile die mit Befehl beginnt folgenden Text ein:
instantfpc --skip-run -B -gl "-Fu$(ProjUnitPath)" $Name($(ProjFile))
  • Setzen Sie in der Zeile Nach Meldungen suchen bei den Kästchen make und FPC die Häkchen.

InstantFPC mit Lazarus debugen

  • Machen Sie die Einstellungen wie im Abschnitt InstantFPC mit Lazarus compilieren beschrieben.
  • Klicken Sie im Hauptmenü auf Start -> Startparameter
  • Geben Sie im Dialog Hostapplikation folgendes ein:
$(InstantFPCCache)/$NameOnly($(ProjFile))
  • Geben Sie im Dialog Arbeitsverzeichnis folgendes ein:
$(ProjPath)

Siehe auch