Stapelverarbeitungsdatei und Parameter(anzahl?)
-
Allgemein:
Übergabe beliebiger Anzahl von Parametern aus Shell zu Programmaufruf innerhalb einer Stapeldatei
(folgen unterbrechungsfrei aufeinander; Reihenfolge ist bei Eingabe fest, spielt aber keine Rolle)Situation:
Ich rufe gcc zumeist über die cmd-Shell (5.1.2600) auf.
Konkrete Projekte bekommen zum Kompilieren ihre eigene Stapelverarbeitungsdatei, in der alles Nötige eingetragen ist und die also ohne Parameter auskommt. Darin steht dann z.B.gcc -Wall -Wextra *.cpp -o Projektname
Nun will ich aber zuweilen auch einfach nur einige Simplizitäten kompilieren, die gar kein eigenes Projekt verdienen - "mal etwas ausprobieren".
Normalerweise tippe ich den Befehl dann direkt in die Shell, so lang ist er ja nicht... Im Falle von Objective-C ist er das aber eben doch:gcc -Wall -Wextra *.m -o Programmname -I C:\GNUStep\GNUStep\System\Library\Headers -L C:\GNUStep\GNUStep\System\Library\Libraries -lobjc -lgnustep-base
Problem ist nun, dass ich nicht immer "*.m" benutzen will und eventuell auch nicht stets "-Wall" oder -"Wextra".
Ich habe also eine Stapelverarbeitungsdatei mit folgendem Inhalt geschrieben:gcc.exe %1 %2 %3 %4 %5 %6 -I C:\GNUStep\GNUStep\System\Library\Headers -L C:\GNUStep\GNUStep\System\Library\Libraries -lobjc -lgnustep-base
Problem:
Das Unerfreuliche ist nun, dass die Anzahl der Parameter durchaus kleiner sein darf als 6, nicht aber größer. Mit "-Wall", "-Wextra", "-o" und "Programmname" als Pflichtteile sind für die Quelldateien aber nur noch zwei Plätze übrig... ja, ich könnte mehr Parameterplätze reservieren, aber das behandelt doch nur die Symptome und löst das Problem nicht.
... Da die Stapelverarbeitungsdatei selbst ja keinerlei zusätzliche Funktionalität enthält, wäre es also sehr schön, wenn folgendes möglich wäre:gcc-objc.bat <lange Kette von Zeichen>
ruft auf
gcc <lange Kette von Zeichen> -I C:\GNUStep\GNUStep\System\Library\Headers -L C:\GNUStep\GNUStep\System\Library\Libraries -lobjc -lgnustep-base
Im Prinzip ein einfaches Durchreichen von "allem was da kommen mag".
Wie lässt sich das elegant (d.h. ohne zusätzlichen Aufwand beim Aufruf) umsetzen?
Ist eine andere Vorgehensweise vielleicht empfehlenswerter?
-
Problem:
Du mußt die Hilfe lesen.help call
gcc.exe %* -I C:\GNUStep\GNUStep\System\Library\Headers -L C:\GNUStep\GNUStep\System\Library\Libraries -lobjc -lgnustep-base
-
-
Ah, so geht das also unter Dos/Windows.
Problem:
Wusste ich noch gar nicht.Lösung:
Ich danke sehr.