Benutzung des SHELL-Compilers

Einführung

Der Kommandozeilen-Compiler befindet sich im Unterordner 'Compilers\' des PureBasic Verzeichnisses. Eine einfachere Möglichkeit ist das Hinzufügen dieses Verzeichnisses zur Windows 'PATH Variable' , um von überall Zugriff auf die Befehle in diesem Verzeichnis zu haben. Verschiedene Optionen können beim Start des Compilers angegeben werden :

Kommandozeilen-Parameter

/? : zeigt einen kurzen Hilfstext über den Compiler an.

/COMMENTED : erstellt eine kommentierte '.asm' Ausgabedatei beim Erstellen des Executable. Diese Datei kann später re-assembliert werden, wenn die notwendigen Modifikationen erfolgt sind. Diese Option ist nur für fortgeschrittene Programmierer bestimmt.

/DEBUGGER : schaltet die Debugger Unterstützung ein.

/EXE "Dateiname" : erstellt ein ausführbares Programm ('Standalone Executable') oder eine DLL mit dem angegebenen Dateinamen im gewünschten Dateipfad.

/ICON "IconName" : fügt das angegebene Icon zum Executable hinzu.

/INLINEASM : schaltet das Inline-Asm Feature ein (Asm-Routinen können direkt im BASIC Sourcecode geschrieben werden).

/RESIDENT "Dateiname" : erstellt eine Resident-Datei mit dem angegebenen Dateinamen.

/CONSOLE: erstellt das Executable im Konsolen-Format. Das Standard-Format ist Win32.

/DLL: die Ausgabedatei wird eine DLL.

/XP: Fügt die Unterstützung für Windows XP-Themen zum Executable hinzu.

/REASM: Reassembliert die PureBasic.asm Datei in ein Executable. Dies ermöglicht die Benutzung der /COMMENTED Funktion, das anschließende Modifizieren der ASM Ausgabe und das erneute Kompilieren des Executable.

/LINENUMBERING: Fügt Zeilen- und Datei-Informationen zum Executable hinzu, was das Kompilieren beträchtlich verlangsamen kann. Dies ermöglicht der OnError Library die Datei und die Zeilennummer eines Fehlers zu melden.

/QUIET: Schaltet alle unnötige Text-Ausgabe ab, sehr nützlich bei Verwendung eines anderen Editors.

/STANDBY: Lädt den Compiler in den Speicher und wartet auf externe Befehle (Editor, Skripte...).

/MMX, /3DNOW, /SSE oder /SSE2: Erstellt ein Prozessor-spezifisches Executable. Dies bedeutet, wenn eine prozessorspezifische Routine verfügbar ist, wird diese für das zu erstellende Executable genutzt. Deshalb wird dieses Executable nur auf Computern mit dieser Art CPU korrekt laufen.

/DYNAMICCPU: Erstellt ein Executable, welches alle verfügbaren Prozessor-spezifischen Routinen beinhaltet. Wenn das Programm dann gestartet wird, ermittelt es den Prozessor-Typ und wählt dann die am besten geeigneten Routinen zur Benutzung. Dies resultiert in einem größerem Executable, jedoch auch im schnellstmöglichen Programm.

/RESOURCE "Dateiname": Fügt eine Windows Ressource-Datei (.rc) zum/zur erstellten Executable oder DLL hinzu. Dies sollte keine kompilierte Ressource-Datei sein, sondern eine Ascii-Datei mit enthaltenen Anweisungen. Es kann nur eine Ressource angegeben werden, falls nötig kann diese Datei jedoch noch andere Ressource-Skripte einbinden.

/LINKER "ResponseDatei": Gibt eine Datei an, welche direkt an den Linker zu übergebende Befehle enthält. Unter Windows verwendet PureBasic den PellesC Linker (polink), weitere Informationen über die möglichen Optionen finden Sie in der zugehörigen Dokumentation.

/IGNORERESIDENT "Dateiname": Lädt nicht die angegebene Resident-Datei, wenn der Compiler startet. Dies ist meistens nützlich beim Updaten einer bereits existierenden Resident-Datei, weshalb diese nicht geladen werden soll.

/CONSTANT Name=Wert: Erstellt die angegebene Konstante mit dem angegebenen Ausdruck. Beispiel: 'pbcompiler test.pb /CONSTANT MyConstant=10'. Die Konstante #MyConstant wird "on-the-fly" mit dem Wert 10 erstellt, bevor das Programm kompiliert wird.

/UNICODE: Verwendet Unicode anstelle von Ascii für das String-Management.

/THREAD: Verwendet eine threadsichere Laufzeitumgebung für Strings und allgemeine Routinen.

/SUBSYSTEM "Name": Verwendet das angegebene SubSystem, um ein Set an internen Funktionen zu ersetzen.

Die folgenden zwei Compiler-Optionen werden für das Erstellen von Programmen benötigt, welche auf dem Microsoft Vista OS laufen sollen. Beides sind Optionen für die eingebundene Manifest-Datei, daher werden sie auf älteren Windows-Versionen ignoriert. Ohne dass eine dieser Optionen gesetzt ist, wird das Executable als "normaler Anwender" gestartet, jedoch mit eingeschalteter Virtualisierung (d.h. Registry- und Datei-Umleitung). Es ist empfehlenswert, die /USER Option zu verwenden, um die virtualisierung aller Programme zu deaktivieren, welche den Standardbenutzer-Privilegien entsprechen, da dies nur der Kompatibilität älterer Programme dient. Diese Optionen sind auch in den IDE Compiler Optionen verfügbar.
/ADMINISTRATOR: Wird das Programm veranlassen, zum Start die Administrator-Privilegien anzufordern. Das Programm wird nicht ohne diese laufen. Diese Option wird benötigt. Note: Sie können mit diesem Flag das Programm auch debuggen, jedoch nur mit dem eigenständigen Debugger (da dieser auch im "Elevated" Modus laufen muss).
/USER: Das Programm wird als der Benutzer laufen, welcher es gestartet hat. Virtualisierung für das Executable ist ausgeschalten.

Beispiel:

  CLI> pbcompiler sourcecode.pb
Der Compiler kompiliert den Sourcecode und führt ihn aus.

  CLI> pbcompiler sourcecode.pb /DEBUGGER /INLINEASM
Der Compiler kompiliert den Sourcecode und führt ihn mit Debugger und Inline-Asm Unterstützung aus.
  CLI> pbcompiler "C:\Project\Source\DLLSource.pb" /EXE "C:\Project\project.dll" /DLL
Der Compiler kompiliert den Sourcecode (hier mit vollständigem Pfad) und erstellt die DLL "project.dll" im angegebenen Verzeichnis.