InstantFPC/de

From Free Pascal wiki
Jump to: navigation, search

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