FAQ: C / C++ mit dem Mac

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von Spacemojo, 17.06.2006.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Spacemojo

    Spacemojo Thread Starter MacUser Mitglied

    Beiträge:
    616
    Zustimmungen:
    21
    MacUser seit:
    16.05.2004
    [SIZE=+1]FAQ: C / C++ mit dem Mac[/SIZE]

    In diesem FAQ sollen wichtige Fragen beantwortet werden, die Mac-Programmier-Anfänger haben.

    F: Was braucht man zum C / C++-Programmieren auf dem Mac?
    A:
    Zuerst muss man mit einem Editor den Code programmieren, dann kann daraus mit einem Compiler in ein Programm erstellen.

    Es gibt zwei Wege das zu tun: Zum einen kann man einen Editor zum coden verwenden und den Code dann mit einem Compiler im Terminal kompilieren.

    Zum anderen kann man eine IDE verwenden, also einen Editor, in dem ein Compiler bereits integriert ist.


    F: Was sind die Vor- und Nachteile von Editor und separatem Compiler?
    A:
    Vorteile:
    - für kleine Projekte mit wenigen Dateien übersichtlich und schnell
    - Editoren meist einfach zu bedienen
    Nachteile:
    - bei vielen Dateien und großen Projekten unübersichtlich
    - Terminal-Grundkenntnisse nötig


    F: Was sind die Vor- und Nachteile einer IDE?
    A:
    Vorteile:
    - Compilieren und Ausführen mit einem Click
    - auch für große Projekte mit vielen Dateien geeignet
    - einfaches Debuggen
    Nachteile:
    - IDEs sind anfangs unübersichtlich


    F: Welche Editoren gibt es?
    A:
    Zum Beispiel:
    - Smultron (Open Source)
    - SubEthaEdit (Version 2.2 für nicht-kommerziellen Gebrauch kostenlos)
    - TextWrangler (Freeware)
    - BBedit
    - Textmate


    F: Welche IDEs gibt es?
    A:
    Zum Beispiel:
    - Xcode
    - Eclipse


    F: Welche Compiler gibt es?
    A:
    Standard ist gcc ("Gnu Compiler Collection") bzw. g++ (ein Teil von gcc)


    F: Wie installiert man gcc?
    A:
    Am einfachsten geht es, wenn man die ”Developer Tools" installiert. Diese sind auf den DVDs, die mit dem Mac geliefert werden. Bei der "Apple Developer Connection" kann man sich online kostenlos registrieren und die neuesten Sachen runterladen (Xcode usw.)


    F: Wie erstellt man Schritt für Schritt mit Editor & gcc ein Programm?
    A:
    Voraussetzung ist, dass gcc installiert ist und ein Editor da ist, z.B. Smultron oder SubEthaEdit.
    1. Erstelle einen Ordner, in den die Dateien kommen, z.B. ~/HalloWelt
    2. Programmiere was du willst, z.B. ein C++-Hallo-Welt-Programm:
    Code:
    #include <iostream>
    
    using namespace std;
    
    int main ()
    {
        cout << "Hallo Welt!\n";
        return 0;
    }
    3. Speichern, z.B. unter ~/HalloWelt/HalloWelt.cpp
    4. Starte das Terminal und gehe in den Ordner ~/HalloWelt:
    "cd HalloWelt/"
    5. Compilieren:
    "g++ HalloWelt.cpp -o HalloWelt"
    Zum kompilieren reicht auch nur "g++ HalloWelt.cpp", dann heißt das erstellte Programm aber "a.out". Die Option "-o HalloWelt" erstellt ein Programm, dass dann auch HalloWelt heißt.
    6. Ausführen:
    "./HalloWelt"

    Anmerkungen:
    Empfehlenswert sind noch die Compiler-Flags "-Wall -pedantic -ansi". Dann werden beim Compilieren alle Warnungen angezeigt, außerdem wird auf den ANSI-Standard geachtet.


    F: Wie erstellt man Schritt für Schritt ein C/C++-Programm mit Xcode?
    A:
    Voraussetzung ist, dass die Developer Tools installiert sind.
    In Xcode kann eine einzelne Datei nicht kompiliert werden, es muss immer ein Projekt erstellt werden, in dem die Datei enthalten ist.
    1. Erstelle ein Projekt:
    File -> New Project -> Command Line Utility -> C++ Tool
    und gebe einen Projektnamen und Speicherort ein.
    2. Clicke auf "Build and Go"


    F: Was ist eine Makefile?
    A:
    Unter Unix-Systemen, also auch OS X, kann man eine Makefile zum kompilieren verwenden. Dann lautet der Terminal-Behfehl nicht "g++ Datei.cpp AndereDatei.cpp -VieleOptionen -usw" sondern nur "make".
    Dazu muss in dem Verzeichnis eine Datei "Makefile" sein, in der festgelegt wird, was wie mit welchen Optionen kompiliert wird.
    Vorteil: "make" ist schnell getippt. Übersichtlicher bei vielen Dateien.
    Nachteil: Makefiles können sehr kompliziert sein.
    Hier ein eine einfache Beispiel-Makefile
    Code:
    CC              = gcc
    CCLINK          = g++
    LIBS            = 
    CCOPTIONS       = -O -Wall -pedantic -ansi
    LDOPTIONS       =
    HDRS            =
    
    PROGRAM = ProgrammName
    OBJS = Datei1.o Datei2.o Datei3.o
    
    $(PROGRAM): $(OBJS)
        $(CCLINK) -o $@ $(LDOPTIONS) $(OBJS) $(LIBS)
    
    clean:
        rm -f $(PROGRAMS) $(OBJS)
    
    %.o: %.cpp $(HDRS)
        $(CC) $(CCOPTIONS) -c $< 
    
    %.o: %.cc $(HDRS)
        $(CC) $(CCOPTIONS) -c $< 
    
    %.o: %.c $(HDRS)
        $(CC) $(CCOPTIONS) -c $< 
    
    Für "ProgrammName" muss eben der richtige Programmname eingesetzt werden. Für "Datei1.o Datei2.o Datei3.o" müssen die Quellcode-Dateien mit einem ".o" als Endung eingesetzt werden. Wenn man z.B. "main.cpp" und "MyClass.cpp" hat: "main.o MyClass.o"
    Mit dem Terminal-Befehl "make clean" werden die ".o"-Dateien gelöscht, die beim compilieren entstehen. Das kann man zum "aufräumen" machen.
    Mit dieser Makefile können Quellcode-Dateien mit Endungen ".cpp", ".cc" und ".c" kompiliert werden.


    F: Mein C/C++-Quellcode wird nicht compiliert, obwohl es unter Windows geht. Warum?
    A:
    Wenn es standardkonformer Quellcode ist, geht es auch auf dem Mac. Unter Windows kann man mit z.B. VisualC++ auch manche "unsauberen" Sachen kompilieren. Also ist wahrscheinlich der Code fehlerhaft.
    Es kann auch sein, dass z.B. Header verwendet werden, die es nur unter Windows gibt, z.B. "conio.h".


    F: Gibt es auch Xcode oder Programmier-Tool XYZ in Deutsch?
    A:
    Nein. Alle Programmierer sprechen Englisch
     
  2. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.045
    Zustimmungen:
    1.318
    MacUser seit:
    13.09.2004
    vielen Dank Spacemojo! :)

    Ich habe den thread Deinem Wunsch entsprechend angepinnt !
     
Die Seite wird geladen...
Status des Themas:
Es sind keine weiteren Antworten möglich.