Verständnissfrage zu C++

Dieses Thema im Forum "Mac OS X Entwickler, Programmierer" wurde erstellt von MarcOSX, 19.04.2004.

  1. MarcOSX

    MarcOSX Thread Starter MacUser Mitglied

    Beiträge:
    25
    Zustimmungen:
    0
    MacUser seit:
    14.01.2004
    Während ich bei JavaCode auf jedem BS das gleiche zu sehen bekomme(meistens jedenfalls), würde ich gerne mal fragen wie sich das bei c++ verhält. Das ist ja, soweit ich weiss nicht Plattformunabhängig. Bedeutet das, das wenn ich ein und das selbe Programm auf vershiedenen Betriebssystemen schreibe der Code anders ist(sein muss). Oder kommt es darauf an welchen Compiler ich verwende? Oder hab ich nu alles vertauscht.

    Die Problematik ist das wir in der Uni nun mit C++ auf Windows und Eclipse (PlugIn) anfangen werden. Und ich nun nicht weis inwieweit ich mit MacOS X10.2 "mithalten" kann, da es dieses PlugIn nicht expliziet für MacOSX gibt.

    Wenn ich C++ Code im Project Builder schreiber muss ich dann noch per Hand übers Terminal gehen um ihn auszuführen oder funzt das über das Programm direkt und wenn ja muss da hinsichtlich des Compilers bezüglich Windows und Linux beachten.

    Das klingt jetzt vielleicht alles ein bischen verworren, wäre dennoch für antworten dankbar.
     
  2. Horror

    Horror MacUser Mitglied

    Beiträge:
    1.416
    Zustimmungen:
    9
    MacUser seit:
    03.02.2003
    Solange ihr nicht mit Sachen wie dem MFC (M$ Foundation Classes) oder anderen Plattformspezifischen APIs arbeitet (man steinige mich bitte NICHT, wenn ich das Wort in falschem Kontext missbrauchen sollte), kannst du deine Quelltexte auf allen möglichen Plattformen übersetzen (ausser du verwendest plattformspezifischen Code). Nimm dir am besten den SubEthaEdit zur Hand, schreibe dort deinen Code und übersetze das File mit dem Terminal (gcc -Wall source.cpp). Am Ende bekommst du eine Binary raus. Ich vermute mal, dass ihr auch regelmässige Programmieraufgaben lösen müsst, und da sollt ihr sicherlich eh nur den Quellcode abgeben. Ansonsten kannst du C++-Projekte auch in XCode bzw. im ProjectBuilder direkt starten.

    Horror
     
  3. der grimm

    der grimm MacUser Mitglied

    Beiträge:
    467
    Zustimmungen:
    0
    MacUser seit:
    10.03.2004
    Hi,

    C, Obj-C und C++ sind an sich plattformunabhängig. Plattformabhängig werden Anwendungen eben dann, wenn man z.B. ein plattformabhängiges API (wie eben z.B. WinAPI, worauf auch z.B. die MFC bloß aufsetzen) benutzt.
    Ich denke aber, dass ihr vorerst eher bloß Konsolenanwendungen programmieren werdet und deshalb sollte es auch so erstmal keine Probleme geben.
    Problematisch könnte es werden, wenn ihr anfangt, Anwendungen mit GUI zu programmieren. Aber auch da gibt es plattformunabgängige Lösungen (z.B. QT, GTK, wxWidgets, ...).

    Ciao
     
  4. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    zudem würde ich Dir empfehlen nicht XCode zu verwenden, sondern das Terminal und von Hand kompilieren.
    Spätestens wenn Ihr anfangt mit make und Makefiles zu arbeiten, wirst Du das ohnein brauchen.
    Insgesamt entwickelt man so IMHO auch ein besseres Verständnis und letztendlich auch die Fähigkeit zum plattformunabhängigen Arbeiten.
    Am Ende kommst Du unter Windows in der DOS Box, unter Linux oder am Mac klar, wenn Du codest und kompilierst.
     
  5. MarcOSX

    MarcOSX Thread Starter MacUser Mitglied

    Beiträge:
    25
    Zustimmungen:
    0
    MacUser seit:
    14.01.2004
    Ich hab heute mit dem KursDozenten gesprochen und mir das so wie ihr erklärt. sicher machen wir vorerst keine GUI Anwendungen aber später auf jeden Fall. er meinte aber das er Tool gefunden habe das sowohl unter Win Linux und Mac einsetzbar ist. Wir werden sehen.

    Noch mal kurz zum Compiler. Ich öffne das Terminal suche das richtige Verzeichnis und schreibe:
    gcc Beispiel.cpp wie bei Java zum Beispiel javac Beispiel.java.

    Ich hab nämlich auch schonmal was von pico und vi gelesen. Sind das andere Compiler die ebenfalls verfügbar sind?
     
  6. jokkel

    jokkel MacUser Mitglied

    Beiträge:
    3.798
    Zustimmungen:
    3
    MacUser seit:
    24.09.2003
    pico und vi sind Editoren für die Shell.
     
  7. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    pico und vi sind editoren.

    Ich würde Dir zu 175% raten unbedingt den vi zu lernen.
    Der ist sowas von klasse zum Coden
    Features (nur einige Beispiele)
    - ultraschnell
    - integrierte Skriptsprache
    - Syntax Highlighting (zB für c, c++, perl, html und viele mehr)
    - Autoindent (automatische Einrückung)
    - merkt sich offene Klammern
    - Umgang mit regulären Ausdrücken
    - Mustererkennung
    - read Funktion (liest ander Dateien ein (zB Vorlagen))
    - globales Ersetzen
    - Zugriff auf shell aus dem Editor möglich
    - auf allen Unix und Linux Systemen verfügbar; außerdem für Win und andere erhältlich (kostenlos)
    ...
    und vieles mehr.

    Am Anfang ist der schwierig, aber es lohnt sch auf jeden Fall

    Ich versuch mal einen Screenshot (vi im Terminal, c-code offen) anzuhängen:
     

    Anhänge:

  8. Scyx

    Scyx MacUser Mitglied

    Beiträge:
    133
    Zustimmungen:
    0
    MacUser seit:
    26.02.2004
    Hab mir mal mit Hilfe der Software Restore CDs alles bis auf die Spiele installiert, also auch die Entwicklerwerkzeuge.
    Wie aber muss ich jetzt verfahren um 'nen Compiler zu installieren/zu benutzen?
    Brauche C++ für die Uni.
    Hab probehalber mal gcc3.2 installiert, lässt sich auch in X11 ausführen.
    Allerdings hat unser Prof. immer g++ benutzt. Nun befürchte ich, dass der "anders" kompiliert...
    Kann mir bitte einer dazu was sagen?

    Vielen Dank.
     
  9. maceis

    maceis MacUser Mitglied

    Beiträge:
    16.645
    Zustimmungen:
    596
    MacUser seit:
    24.09.2003
    hallo

    Also mit den devTools (unter 10.3) wird sowieso schon die Version 3.3 installiert.
    Warum Du da zusätzlich was installiert hast, versteh ich nciht.
    Anstelle vin X11 würde ich unbedingt Terminal benutzen.


    lrwxr-xr-x 1 root wheel 7 9 Feb 15:25 /usr/bin/g++ -> g++-3.3
    lrwxr-xr-x 1 root wheel 7 9 Feb 15:25 /usr/bin/gcc -> gcc-3.3

    der gcc ist AFAIK eigentlich ein C Compiler, während der g++ ein c++ Compiler ist,
    Beide können aber inzwischen letztendlich Beides und funktionieren auch weitgehend gleich.
    Man kann damit auch Objective-c, Assembler, Fortan und vieles mehr kompilieren

    Einzelheiten kannst du ggf. der man-page entnehmen, aber Vorsicht, die ist ellenlang :D

    Ich denke, du komms auf jeden Fall ohne Schwierigkeiten klar.
    Mac OS X ist wie geschaffen für c und c++.

    schau mal:
    Auschnitt aus /usr/bin.
    Du siehst: alles da was man so braucht
     
  10. Scyx

    Scyx MacUser Mitglied

    Beiträge:
    133
    Zustimmungen:
    0
    MacUser seit:
    26.02.2004
    Also, ich hab in meiner /usr/bin/ folgende "Sachen" für C:
    gcov3
    gcc3
    c++3
    g++3

    Wenn ich folgendes:
    #include <iostream>
    using namespace std;
    int main( ) {
    int summe,a,b;
    // Lies die Zahlen a und b ein
    cout << "a und b eingeben:";
    cin >> a >> b;
    /* Berechne die Summe beider Zahlen
    */ summe = a+b;
    // Zeige das Ergebnis auf dem Bildschirm an
    cout << "Summe=" << summe; }

    in 'ner Datei (summetest.cpp) speichere und mit "c++3 /Pfad/zu/summetest.cpp" kompilieren will kommt eine irre lange Fehlermeldung.
    Wenn ich aber "c++3 -I /Developer/ -o /Pfad/Summe /Pfad/zu/summetest.cpp" benutze kommt "nur noch" dieser Fehler:
    /Users/user1/Documents/summetest.cpp:1:20: iostream: No such file or directory
    /Users/user1/Documents/summetest.cpp: In function `int main()':
    /Users/user1/Documents/summetest.cpp:6: `cout' undeclared (first use this
    function)
    /Users/user1/Documents/summetest.cpp:6: (Each undeclared identifier is reported
    only once for each function it appears in.)
    /Users/user1/Documents/summetest.cpp:7: `cin' undeclared (first use this
    function)

    Hab keinen blassen Schimmer warum der sich beschwert, obwohl ich ihm doch die include Dateien mit auf'n Weg gebe...
     
    Zuletzt bearbeitet: 21.04.2004
Die Seite wird geladen...

Diese Seite empfehlen