Compiler-Kommandos Win/Linux

Für Fragen rund um die Ide und zum Debugger
Antworten
Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Compiler-Kommandos Win/Linux

Beitrag von Mathias »

Ich habe unter Project-Einstellungen/Compiler-Kommandos ein *.bat welche beim start ausgeführt wird.
Wen ich nun mein Project unter Linux kompiliere, dann motzt logischerweise die IDE.

Kann man es irgendwie machen, wen unter Linux kompiliert, wird eine *.sh ausgeführt, unter Windows eine *.bat ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

marcov
Beiträge: 1100
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Compiler-Kommandos Win/Linux

Beitrag von marcov »

Warum ein .BAT statt ein .CMD ? Nutzt du noch immer win9x ?

Socke
Lazarusforum e. V.
Beiträge: 3158
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Compiler-Kommandos Win/Linux

Beitrag von Socke »

marcov hat geschrieben:Warum ein .BAT statt ein .CMD ? Nutzt du noch immer win9x ?

Wie die Datei heißt tut nichts zur Sache. In beiden Fällen wird wird die cmd[.]exe gestartet (bei NT-Betriebssystemen).
Mathias hat geschrieben:Kann man es irgendwie machen, wen unter Linux kompiliert, wird eine *.sh ausgeführt, unter Windows eine *.bat ?

Du kannst dir unter Windows die Bash installieren (z.B. https://msysgit.github.io/). Damit kann man dann auch .sh-Dateien unter Windows ausführen.
Alternativ kannst du ein Makefile verwenden.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Compiler-Kommandos Win/Linux

Beitrag von Mathias »

Ich habe eine Lösung gefunden, so kann ich wenigstens unter Linux kompilieren, ohne das ein Fehler kommt.
Die bat wandelt mit nur eine Text-Datei mit dem Shader in eine String-Konstante um.

Code: Alles auswählen

..\..\Units\OpenGL\Shader\Shader.bat


Vorher hatte ich LW:\...., das konnte Lazarus natürlich nicht finden.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Compiler-Kommandos Win/Linux

Beitrag von wbeppler »

mach mal folgendes:

Code: Alles auswählen

// eine der beiden zeilen je nach system auskommentieren
{$define windows}
// {$define linux}
 
{ifdef windows}
  // ruf die cmd auf
{$endif}
 
{$ifdef linux}
  // ruf die bash oder sonstwen
{$endif}
 

aber klar zur laufzeit das system erlitteln ist noch geschickter, wie hast du das nun geloest ?
Zuletzt geändert von Lori am So 25. Jan 2015, 14:09, insgesamt 1-mal geändert.
Grund: Bitte den Highlighter nutzen.

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Compiler-Kommandos Win/Linux

Beitrag von Mathias »

wie hast du das nun geloest ?

Ich entwickle hauptzächlich mit Windows, unter Linux kompiliere ich nur das Endprodukt. Somit ist es egal, wen die BAT unter Linux nicht läuft.

Aber wenigstens muss ich nicht immer den Hacken setzen/entfernen, wen ich das OS wechsle.

@wbeppler

Die Complier-Shalter gehen nur inerhalb des Pascal-Quelltextes und haben nichts mit sh/BAT zu tun.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

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

Re: Compiler-Kommandos Win/Linux

Beitrag von theo »

Mathias hat geschrieben:
wie hast du das nun geloest ?

Ich entwickle hauptzächlich mit Windows, unter Linux kompiliere ich nur das Endprodukt. Somit ist es egal, wen die BAT unter Linux nicht läuft.

Aber wenigstens muss ich nicht immer den Hacken setzen/entfernen, wen ich das OS wechsle.

@wbeppler

Die Complier-Shalter gehen nur inerhalb des Pascal-Quelltextes und haben nichts mit sh/BAT zu tun.

Achte bitte ein wenig auf deine Rechtschreibung, man muss sich ja schämen als Schweizer... :wink:
Wenn man es nicht kann, könnte man doch mindestens die Rechtschreibprüfung verwenden.

wbeppler
Beiträge: 131
Registriert: So 20. Jul 2014, 10:27
OS, Lazarus, FPC: kubuntu, raspbian, laz 1.2 / 0.9 microcontroller
CPU-Target: 8-64 bit
Wohnort: bodensee
Kontaktdaten:

Re: Compiler-Kommandos Win/Linux

Beitrag von wbeppler »

theo : rechtschreibung ist im Forum "Deutsch fuer Anfaenger" um mir hier schnurz


mathias: ich meine ja genau das ! haette ich alles ausfuehrlich schreiben sollen ?

zu "Deutsch": if unter windows rufe bat / if unter linux rufe bash
check ich nicht was du meinst ?

und JA, eine kleine stelle musst du aendern, aber weshalb du ne bat nur unter win brauchst und nicht unter lin ist neu und mir unklar, egal :-)

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2640
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

OT: Re: Compiler-Kommandos Win/Linux

Beitrag von m.fuchs »

wbeppler hat geschrieben:theo : rechtschreibung ist im Forum "Deutsch fuer Anfaenger" um mir hier schnurz

Übersetzt heißt das: Wenn ich hier hinkotze, dann wischt ihr das gefälligst weg!

Zur ursprünglichen Frage: du kannst auch die Befehle in ein Makefile packen (http://de.wikipedia.org/wiki/Make). Dann rufst du einfach nur "make" vor dem Kompilieren auf. Das geht dann unter Linux und Windows.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

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

Re: Compiler-Kommandos Win/Linux

Beitrag von theo »

wbeppler hat geschrieben:theo : rechtschreibung ist im Forum "Deutsch fuer Anfaenger" um mir hier schnurz

Mir ist das hier nicht schnurz. Ich sehe auch keinen Sinn darin, jemanden zur nachlässigen Rechtschreibung zu ermutigen.
Beim Programmieren geht es doch auch um Sorgfalt und Geduld und da passt eine schludrige Orthographie nicht dazu.
Jeder macht Fehler, das ist klar. Aber es gibt eine Grenze ab der es unanständig wirkt.

Mathias
Beiträge: 6194
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Compiler-Kommandos Win/Linux

Beitrag von Mathias »

Zur ursprünglichen Frage: du kannst auch die Befehle in ein Makefile packen (http://de.wikipedia.org/wiki/Make). Dann rufst du einfach nur "make" vor dem Kompilieren auf. Das geht dann unter Linux und Windows.

Gegenwärtig habe ich folgendes Kommando: ..\..\Units\OpenGL\Shader\Shader.bat

Wen ich dich richtig verstehe, soll ich im Ordner, in dem die Shader.bat, eine Makefile erzeugen.
Und anschliessend mit folgendem Kommando aufrufen: make -C ..\..\Units\OpenGL\Shader ?

Die Shader.bat sieht so aus:

Code: Alles auswählen

@v:
@set Pfad="V:\DATEN\Programmierung\Lazarus\Tools\Text To Pascal String\TextToPascal"
@cd V:\DATEN\Programmierung\Lazarus\Units\OpenGL\Shader
@%Pfad% monocolor.vert
@%Pfad% monocolor.frag
@%Pfad% textur.vert
@%Pfad% textur.frag
@%Pfad% color.vert
@%Pfad% color.frag
@%Pfad% light.glsl
@%Pfad% nolight.glsl
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2640
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Compiler-Kommandos Win/Linux

Beitrag von m.fuchs »

Nö, vergiss die Batchdatei und pack die einzelnen Anweisungen in das Makefile.

Idealerweise setzt du da auch keine Pfade, sondern benutzt relative Pfadangaben für die Aufrufe. Pack am besten den Quellcode von deinem TextToPascal-Programm mit in deinen Projektordner und lass es auch von make kompilieren.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Antworten