Difference between revisions of "InstantFPC/de"

From Lazarus wiki
Jump to navigationJump to search
m (Fixed syntax highlighting; deleted category included in page template)
 
(12 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('Hallo FPC Programmierer');
 
   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
 
Hallo FPC Programmierer
 
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 86: Line 102:
 
*Umgebungsvariable '''INSTANTFPCCACHE''': Setzt das Cacheverzeichnis fest. --get-cache kann das Verzeichnis überschreiben.
 
*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.
 
*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=
<br>
+
 
 
==Unter Linux==
 
==Unter Linux==
Compiler-Parameter können in der Kopfzeile übergeben werden. Hinweis: Den Befehl 'env' können Sie nicht verwenden.<br>
+
 
<syntaxhighlight>
+
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
Line 98: Line 115:
 
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>
+
 
 +
<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 108: Line 128:
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
 
  
==Unter Windows==
+
== Unter Windows ==
 +
 
 
Compiler-Parameter können in der Kopfzeile übergeben werden. Hinweis: Den Befehl 'env' können Sie nicht verwenden.<br>
 
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>
 
Programmkörper des Pascal Skriptes:<br>
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=pascal>
 
begin
 
begin
 
   WriteLn('Hallo');
 
   WriteLn('Hallo');
 
end.
 
end.
 
</syntaxhighlight>
 
</syntaxhighlight>
Temporäres erweitern der Windows-Pfadvariable:<br>
+
 
<syntaxhighlight lang="DOS">
+
Temporäres erweitern der Windows-Pfadvariable:
 +
 
 +
<syntaxhighlight lang=DOS>
 
SET PATH=%PATH%;C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64
 
SET PATH=%PATH%;C:\Programme\Lazarus\fpc\2.6.2\bin\x86_64-win64
 
</syntaxhighlight>
 
</syntaxhighlight>
Aufruf des Pascal Skriptes:<br>
+
Aufruf des Pascal Skriptes:
<syntaxhighlight>
+
 
 +
<syntaxhighlight lang=DOS>
 
instantfpc -O1 -Ci test.sh
 
instantfpc -O1 -Ci test.sh
 
</syntaxhighlight>
 
</syntaxhighlight>
<br>
 
  
 
=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 151: 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>
+
 
 
==Unter Linux==
 
==Unter Linux==
<br>
+
 
 
===InstantFPC mit Lazarus compilieren===
 
===InstantFPC mit Lazarus compilieren===
Wie man ein Lazarusprojekt mit instantfpc compiliert.<br>
+
 
Folgendes wird benötigt:<br>
+
Wie man ein Lazarusprojekt mit instantfpc compiliert.
* Die Hauptdatei des Projektes ist eine InstantFPC Datei.<br>
+
 
Einstellungen:<br>
+
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.
<br>
 
  
 
===InstantFPC mit Lazarus debugen===
 
===InstantFPC mit Lazarus debugen===
 +
 
* 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 181: Line 261:
 
* Geben Sie im Dialog '''Arbeitsverzeichnis''' folgendes ein:
 
* Geben Sie im Dialog '''Arbeitsverzeichnis''' folgendes ein:
 
  $(ProjPath)
 
  $(ProjPath)
<br>
+
 
<br>
+
= Siehe auch =
--[[User:Olaf|Olaf]] 12:30, 16 February 2014 (CET)
+
 
[[Category:Tutorials/de]][[Category:Console/de]]{{AutoCategory}}
+
* [[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