1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Probleme mit C++ Programmierung unter OSX

Dieses Thema im Forum "OS X-Developer" wurde erstellt von Casi, 08.04.08.

  1. Casi

    Casi Spartan

    Dabei seit:
    21.12.07
    Beiträge:
    1.601
    Hallo liebe Leute :)

    Ich versuche nun jetzt ne ganze Zeit irgendwie C++ unter MacOSX zu programmieren. Ich brauche es jetzt für mein Studium. Ich hab jetzt folgende Programme getestet: XCode; Eclipse und Doxygen. XCode ist mir einiges zu kompliziert.
    Doxygen ist gar nicht gestartet.
    Eclipse baut einfach keine Pakete - Immer die gleichen beiden Fehler (selbst beim Standard Beispiel wenn man eine neue Classe Erstellt)
    Error Nr.1:
    Code:
    make: *** [Test] Error 1
    Error Nr.2:
    Code:
    symbol(s) not found
    Könnt ihr mir weiterhelfen? oder vielleicht noch das ein oder andere Programm für Anfänger empfehlen? Ich bräuchte am besten soetwas wie BlueJ für java nur halt jetzt für C++.

    Gruß,
    Stasicasi
     
  2. FrankR

    FrankR Kleiner Weinapfel

    Dabei seit:
    15.11.07
    Beiträge:
    1.144
    Am Besten schreibst Du Deinen C++ Code ersteinmal mit einem "normalen" Editor (z.B. vi, Emacs, Textmate, Subetha-Edit). Danach versuchst Du den Compile mit "g++ -o mein_programm mein_programm.cc" und schaust mal was dann so passiert.

    Es wäre auch ganz hilfreich, wenn Du Deinen Code postest und nicht nur die Fehlermeldung. Allerdings kann ich auch nicht ganz nachvollziehen, was an Xcode so kompliziert ist. Es ist halt ein Werkzeug für professionelle Entwickler und kein Spielzeug - etwas Einarbeitung setzt sowas natürlich schon voraus. (BTW: Doxygen ist eher für die Dokumentation von Sourcecode, weniger zum compilieren...)
     
  3. Casi

    Casi Spartan

    Dabei seit:
    21.12.07
    Beiträge:
    1.601
    Code:
    #include <iostream>
    
    using namespace std;
    
    int main(){
       cout << "Hallo Welt!" << endl;
       system("PAUSE");
       return 0;
    }
    Das Programm versuche ich ans laufen zu bekommen. Wie gesagt, ich bin ein Anfänger ;)

    Kompliziert finde ich bei XCode z.B. dass ich da mein Programm komplett bauen und compilieren kann, aber der 'GO' oder start Button sit grau unterlegt => Kann also kein Programm starten. :/
    Ich teste es mal mitm Editor. Ich schreib gleich obs geklappt hat.

    Gruß,
    Scsi

    Edit:
    Code:
    Stasi:C++ Casi$ g++ -o test.cpp
    i686-apple-darwin9-g++-4.0.1: no input files
    Ist die Ausgabe. In der test.cpp steht der Code von oben.

    Edit 2:
    Code:
    Stasi:C++ Casi$ g++ -o test test.cpp
    ld: can't open output file for writing: test
    collect2: ld returned 1 exit status
    Edit3: Juhu funktioniert !! :) Ich hatte noch einen Ordner names test dadrinnen. Als ich den gelöscht habe, hat es funktioniert :)
    Code:
    /Users/Casi/Documents/C++/test ; exit;
    Stasi:~ Casi$ /Users/Casi/Documents/C++/test ; exit;
    Hallo Welt!
    sh: PAUSE: command not found
    logout
    
    [Prozess beendet]
    nunja, ich bräuchte trotzdem Irgendein Programm. Kennst keiner so Teile? :/
     
    #3 Casi, 08.04.08
    Zuletzt bearbeitet: 08.04.08
  4. FrankR

    FrankR Kleiner Weinapfel

    Dabei seit:
    15.11.07
    Beiträge:
    1.144
    Nach "-o" solltest Du die Zeildatei (das ausführbare Programm) schreiben.

    Also "g++ -o test test.cpp". Danach mit "./test" ausführen *NICHT* "test" - das wird die wahrscheinlich ein Shell Buildin namens "test" ausführen und gar nichts ausgeben - beliebter Anfängerfehler.

    "system("PAUSE");" sagt mir jetzt eigentlich gar nichts - Du versuchst dort ein Programm "PAUSE" auszuführen - keine Ahnung, ob es das auch bei Dir gibt.
     
  5. Casi

    Casi Spartan

    Dabei seit:
    21.12.07
    Beiträge:
    1.601
    Ich meine, das stand an der Tafel. Ich weiß nicht, ob das Windows-spezifisch. Unser Dozent hatte nen WinRechner und wenn der den Befehl ausgeführt hat, kam halt in der Konsole: Bitte beliebige Taste zum beenden drücken . . .

    Edit: Probiere grade Netbeans. Das hat mir eigentlich schon für java net gefallen. Wenn jmd eine schlanke Entwicklerumgebung für C/C++ kennt oder findet, bitte bescheid sagen. :/
     
    #5 Casi, 08.04.08
    Zuletzt bearbeitet: 08.04.08
  6. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.246
    Netbeans 6 finde ich persönlich sehr viel besser als Xcode oder Eclipse. Ansonsten wenn Dir die IDEs zu kompliziert sind nimm die Konsole und compilere das Programm von Hand. Das ist für einen Anfänger eh sinnvoller. Ich weiß nicht warum mittlerweile jeder Anfänger meint erstmal mit einer IDE für Profis anfangenzumüssen.
     
  7. FrankR

    FrankR Kleiner Weinapfel

    Dabei seit:
    15.11.07
    Beiträge:
    1.144
    Schlanke Entwicklungsumgebung: X11+xterm(oder Terminal) + (ba)sh + vim + gcc/g++ + make

    Nutze ich seit 20 Jahren und vermisse keinerlei IDE ;).
     
  8. Casi

    Casi Spartan

    Dabei seit:
    21.12.07
    Beiträge:
    1.601
    Wenn es nichts anderes für Mac OS X gibt !?
     
  9. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Xcode:
    1. File->New Project, im Dialog: Command Line Utility->C++ Tool auswählen
    2. Im Folgedialog "test" als Namen eingeben.
    3. Source/main.cpp doppelklicken
    4. deinen Code eingeben
    5. Build & Go anklicken (entspricht den drei Edits (!) im vorangegangenem Beitrag)
    6. Sehen, dass es kein "Pause" gibt.
     
  10. harden

    harden Roter Eiserapfel

    Dabei seit:
    28.03.05
    Beiträge:
    1.445
    Gibt es... Texteditor und Terminal. Nachdem wir in der Uni semesterlang C++ gemacht haben gibt es jetzt Java: mit Texteditor und Terminal. So wird es auch in gängigen Lehrbüchern beschrieben.
     
  11. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.246
    Das ist doch Schmarrn. Es gibt natürlich den Compiler direkt im Paket, dazu kann man sich einen beliebigen Editor installieren. Man kann auf die gute alte Art und Weise Makefiles erstellen. Man kann ant, jam oder eines der neueren Build-Werkzeuge verwenden, die allesamt Möglichkeiten eröffnen, die mit einer IDE nie möglich sind, bzw. nur dann wenn man mit dieser ebenfalls diese Werkzeuge benutzt und die entsprechenden Dateien von Hand erzeugt.

    Ergo, keine faulen Ausreden. Lern erstmal den Compiler auf der Kommandozeile zu benutzen und nutzte einen einfacheren Editor. Mein Favorit ist immer noch nedit, auch wenn das eine X11 Applikation ist. Scite ist auch nicht schlecht.
     
  12. Casi

    Casi Spartan

    Dabei seit:
    21.12.07
    Beiträge:
    1.601
    Okay, ihr habt ja recht ;) :)


    Jop, schon gesehen :)
     
  13. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Das ist jetzt off-topic, aber wenn ich mich mal aus dem Fenster lehnen darf, dann sind Makefiles doch quasi das Cobol der Build Systeme.

    Ja, OK, make gibt es überall. Und, leider will ich sagen, ist es immer noch vorteilhaft, wenn man Makefiles lesen kann.

    Aber, komm, tjp, Hand auf's Herz, schön ist das nicht. Und es lenkt meiner Ansicht nach von der eigentlichen Aufgabe der Softwareentwicklung ab, aber das ist wahrscheinlich eine persönliche Haltung.

    Alex

    Nachtrag: Du darfst ab jetzt auch jegliche Unwissenheit meinerseits auf die Tatsache abschieben, dass ich nach dem C64 direkt mit einer IDE am Mac (LightSpeed Pascal, 1985) angefangen habe.
     
  14. FrankR

    FrankR Kleiner Weinapfel

    Dabei seit:
    15.11.07
    Beiträge:
    1.144
    Da lehnst Du Dich aber IMHO sehr weit aus dem Fenster. Wenn mann einmal gelernt hat mit Makefiles umzugehen, gibt es wohl nichts Flexibleres. Kombiniert mit ein paar Zeilen Shell kann man mit Makefiles wohl alles, auf allen möglichen Plattformen machen.

    Gerade GNU-make bietet wirklich unheimlich viel - bisher habe ich noch nichts vermisst.... Ist aber sicher Geschmacksache aber gleich die COBOL Keule zu schwingen finde ich nicht so ganz fair ;)
     
  15. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Ist nur die Frage, wer alles Mögliche auf allen Plattformen machen will. Und wieso?
     
  16. FrankR

    FrankR Kleiner Weinapfel

    Dabei seit:
    15.11.07
    Beiträge:
    1.144
    Ganz einfach, es gibt z.B. Serveranwendungen die möglichst portabel sein sollten. Es ist schon manchmal praktisch wenn die Software relativ problemlos unter verschiedenen Unix Systemen (und mit den entsprechenden Tools wie z.B. Cygwin auch Windows) eingesetzt werden kann.
    Für mich ist es z.B. sehr praktisch auf meinem MBP zu entwickeln und die Software dann einfach auf unseren Linux Servern zu kompilieren.
     
  17. below

    below Kalterer Böhmer

    Dabei seit:
    08.10.06
    Beiträge:
    2.865
    Du sagst es doch selbst:
    Das bezweifele ich gar nicht. Ich selber bin auch ein grosser vim Fan. Aber ob ich das heute einem Anfänger als Editor wirklich empfehlen würde... naja, ich weiss nicht.

    Persönlich finde ich, dass man das Verständnis für Zusammenhänge auch mit einer IDE Lernen kann. Ich konnte mich damals auch Problemlos auf MSVC zurechtfinden, denn irgendwie machen die ja doch alle das selbe.

    Wie ich oben schrieb, ich halte das Erlernen von make bei Anfängern für eher ablenkend.

    Alex
     
  18. Amin Negm-Awad

    Amin Negm-Awad Süsser Pfaffenapfel

    Dabei seit:
    01.03.07
    Beiträge:
    665
    Ich soll mich mit einem CLI-Tool herumquälen, weil es zum Beispiel Serveranwendung gibt, die portabel sein sollen?
     
  19. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.246
    Und Cobol ist immer die Brot&Butter Programmiersprache in einem großen Teil des Enterprisegeschäfts. Zusammen mit den vielen zSeries, die in den vielen Keller der Rechenzentren stehen, wird so ein Großteil des täglichen Geschäfts gestemmt, und das sehr zuverlässig. Cobol dürfte ähnlich bekannt und beliebt sein wie RPG, trotzdem ist es eine Stütze vieler Firmen.

    Make ist in die Jahre gekommen, aber IDEs sind dafür kein gleichwertiger Ersatz, wenn müssen wir uns über jam und ant unterhalten.

    Das sehr große Problem an IDEs ist, daß sie generische Softwareentwicklung wenig bis gar nicht unterstützen. Wo ist denn bitte der große Vorteil einer IDE, wenn ich am Ende trotzdem Makefiles bzw. Dateien für ant und jam schreibe?

    Schön ist für mich das Werkzeug, was es einem effizient erlaubt eine Aufgabe zu lösen. Immer wiederkehrende Probleme von Hand zu lösen ist häßlich, daher favorisiere ich generische Lösungen.
     
  20. tjp

    tjp Baldwins roter Pepping

    Dabei seit:
    07.07.04
    Beiträge:
    3.246
    Ein guter Softwareentwickler achtet darauf, daß seine Software möglichst plattformunabhängig ist, ein schlechter erkennt das Problem noch nicht einmal.
     

Diese Seite empfehlen