Artikel getaggt mit ‘C/C++’
g++ (MinGW) installieren (und in UltraEdit einbinden)
Dieser Beitrag richtet sich an aller C++ Entwickler unter Windows, die mit IDM UltraEdit arbeiten; oder solche, die es werden wollen.
Warum MinGW und UltraEdit?
UltraEdit ist ein Texteditor für Programmierer aus dem Hause IDM (offizielle Website). Der Vorteil bei UltraEdit ist, das er zwar ein mächtiger Texteditor für nahezu alle Bedürfnisse ist, aber dem Entwickler nicht am Code pfuscht. Das heißt Sie geben die Kontrolle über Ihre Projekte nicht aus der Hand und trotzdem wird in an vielen Stellen Arbeit abgenommen. So lässt sich zum Beispiel die Codevervollständigung aktivieren oder externe Programme (wie Compiler) einbinden. Natürlich gehören auch Lesezeichen, (auch eigene) Code-Vorlagen, Umgang mit Projekten und Einzeldateien, WebSearchToolbar, Verschlüsselung, FTP-Browser, eine anpass- und abspeicherbare Arbeitsoberfläche, Codebereinigung, … zum Lieferumfang.
MinGW ist ein Compilerpaket, dass veile Sprachen wie C/C++, JAVA, … abdeckt. Im Grunde sind dort alle Werkzeuge der GNU-Compiler-Collection enthalten. Diese sind für jedes Linux-System verfügbar, weshalb das MinGW-Paket ausschließlich für Windows erhältlich ist. Neben dem Compiler Von Microsoft ist der g++ einer der am häufigsten genutzten Compiler für C/C++.
MinGW installieren
Da die Installation von UltraEdit durch den Installationsassisten in Deutsch eigentlich sehr einfach ist und ohne Probleme ablaufen sollte, gehen wir im Folgenden davon aus, das dies bereits erledigt ist. Bleibt also noch MinGW. Die offizielle Website lautet http://www.mingw.org/. Dort befindet sich auch ein Link zum Sourceforge-Archiv des MinGW-Projekts, wo die Dateien heruntergeladen werden können. Wir nehmen hier den „Automated MinGW Installer“.
Nach dem Dowload kann die .exe gestartet werden. Eine Meldung erscheint, das nach der aktuellsten version gesucht wird. Anscheinend erscheint die Meldung „Welcome to MinGW Version …“.
- Die Installation kann mit „Next >“ vorbereitet werden. Hier wählen wir „Download and install“ um die benötigten Datien aus dem Internet zu laden und MinGW anschließend zu installieren.
- MinGW kann nur isntalliert werden, wenn sie die nun sichtbare lizenz mit „I Agree“ akzeptieren.
- Bei der Frage,w elche Version wählen wir „Current“. Es gibt in der regel keinen Grund ältere Sofwtare vorzuziehen. Aber eine ß-Version kann zu Problem führen. Weiter mit „Next >“.
- Nun können Sie wählen welche Pakete installiert werden sollen. Zunächst reicht uns für die reine C++-Programmierung „MinGW Base Tools“ und „g++ Compiler“. (Natürlich können Sie bei Bedarf weitere installieren.)
- Nach „Next >“ können Sie nun ein Installatiosnverzeichnis wählen. Sie könne hier im Grunde ein beliebiges auswählen. allerdings verursachen Compiler manchmal Probleme, wenn in irgendeinem Pfad Leerzeichen sind. Es wäre also praktisch hierauf zu verzichten. Der Vorschlag („C:\MinGW“) ist also eine gute Idee.
- Anschließend kann der Name für den Ordner im Startverzeichnis gewählt werden.
- Nach dem Klick auf „Install“ werden die benötigten Datien aus dem Internet geladen und die Installation startet.
- Anschließend ein Klick auf „Next >“ und hier auf „Finish“ und Sie haben es geschafft.
g++ ohne UltraEdit benutzen
g++ ist nun einsatzbereit. Sie sollten allerdings den Pfad zu MinGW noch als Umgebungsvariable setzen. Sonst müssen Sie beim Kompilieren immer den kompletten Pfad angaben.
- Gehen Sie in den Eintrag „System“ in der Systemsteuerung. Hierfür muss die klassische Ansicht ausgewählt sein.
- Nun gehen Sie auf den Reiter „Erweitert“ und klciken auf den Button ganz unten „Umgebungsavriablen“.
- Unter „Systemvariablen“ suchen Sie den Eintrag „Path“.
- Nach einem Doppelklick können Sie in das Feld „Wert der Variablen“ den folgenden Text anhängen: „;C:\MinGW\bin“ (ohne Anführungszeichen, gegebenenfalls müssen Sie den Pfad anpassen, wenn Sie ihr Installationsverzeichnis anders gewählt haben).
- Damit die Umgebungsvariablen komplett übernommen werden, sollte der PC nun neugestartet werden.
Wenn Sie nun eine .cpp-Datei kompilieren wollen, rufen Sie die Konsole auf (zum Beispiel mit [WIndows]+[E] und dort „cmd“ (ohne Anführungszeichen) eingeben. Mit [Enter] bestätigen).
- wechseln Sie mit „cd“ in das Verzeichnis, indem sich die .cpp-Datei befindet. Zum Beispiel: cd C:\dev\cpp
- Hier geben Sie g++ -o MeinErstesProgramm MeinErsterCode.cpp ein (g++ -o [Name die die .exe haben soll] [Kompletter Name der Datei]).
- Wenn Sie mehrere Dateien kompilieren wollen, können Sie anstatt „MeinErsterCode.cpp“ auch „*.cpp“ schreiben.
g++ in UltraEdit einbinden
Wenn Sie UltraEdit benutzen, können Sie sich die ganze Arbeit unter „g++ ohne UltraEdit benutzen“ sparen. Hier gehen Sie einfach unter [Extras]->[Werkzeug-Konfiguration]. Anschließend auf „Einfügen“. Nun können Sie die folgenden Werte eingeben:
- Bezeichnung für den Menüeintrag: aktuelle Datei kompilieren
- Befehlszeile: C:\MinGW\bin\g++.exe -o „%n“ %F
- Arbeistverzeichnis: %P
- (Nun im Reiter „Optionen“) Programmtyp: Dos-Programm
- Ein Harken bei „Aktive Datei erst speichern“
- (Nun im Reiter „Ausgabe“)Befehlsausgabe: Ausgabe in Listenfeld und Ausgabe aufzeichnen
- Markierten Text ersetzen durch: Nicht ersetzen
Wenn Sie ganze Projekte kompilieren möchten, müssen Sie im Gegensatz zu oben einige Einträge ändern:
- Bezeichnung für den Menüeintrag: Projekt kompilieren
- Befehlszeile: C:\MinGW\bin\g++.exe -o „%rn“ %RP*.cpp
- Arbeistverzeichnis: %RP
- Ein Harken bei „Erst alles speichern“
Nun können Sie noch Einträge zum Ausführen der erstellen Programme einfügen. Wenn Sie die erstellte .exe einer Datei ausführen wollen, lautet die Befsehlszeile „%P%N.exe“ (beim Projekt „%RP%RN.exe“). Unter Optionen wird nichts gespeichert und das DOS-Programm ausgewählt. Bei beiden Typen wird unter dem Reiter „Ausgabe“ das Häkchen bei „Ausgabe aufzeichnen“ entfernt und afür eins bei „DOS-Fenster anzeigen“ gesetzt.
Mehr zu diesen Möglichkeiten bei UltraEdit finden Sie auch sehr gut dokumentiert in der Hilfe. Der Eintrag in der Hilfe ist gleichnamig mit dem genutzten im Extras-Menü.
Systemcalls mit C unter Linux
So… das Thema dieses Eintrags sind also „Systemcalls mit C unter Linux“… doch was sind jetzt eigentlich „Systemcalls“ oder auch kurz „Syscalls“?
Ich will mich hier kurz fassen: Syscalls bieten eine Möglichkeit, aus einem Benutzerprogramm (oder eben aus einem C-Programm heraus) Funktionen des Kernels zu benutzen; normalerweise hat man ja auf diese wichtigen, geschützten Funktionen (berechtigterweise) keinen Zugriff.
Kommen wir jetzt allerdings zum Thema Linux: was gibt es jetzt dort also für Syscalls? Die Antwort steht in der Datei /usr/src/linux-2.6.22.5-31/include/asm-i386/unistd.h. Dort sind alle Syscalls aufgeführt
(Ordnernamen können abweichen)
Doch ohne Besipiele wäre dieser Eintrag doch recht öde, von daher hier mal ein kleines Beispielprogramm:
#include <unistd.h>
int main( void )
{
write( 0, "Hallo, Welt!\n", 13 );
return 0;
}
Der hier benutzte Syscall ist write; dieser Syscall trägt die Nummer 4 (ja, jeder Syscall hat auch eine Nummer, diese steht ebenfalls in unistd.h). Was macht dieser Syscall nun? Schlichte Antwort: er gibt die Zeichenkette, die als zweiter Parameter übergeben wird, einfach aus. Wo diese Zeichenkette jetzt ausgegeben werden soll, legt der erste Parameter fest; 0 steht einfach für die Standardausgabe – den Bildschirm. Die 13 gibt einfach die Anzahl der zu schreibenden Zeichen an
(Würden wir zum Beispiel anstatt 13 die Zahl 11 angeben, wäre die Ausgabe: Hallo, Welt)
Zugegeben: dieses Programm war nicht gerade spektakulär, aber es gibt ja auch noch andere Syscalls – einfach mal ausprobieren!