Probleme mit C++ Programmierung unter OSX

Casi

Spartan
Registriert
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
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
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...)
 

Casi

Spartan
Registriert
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? :/
 
Zuletzt bearbeitet:

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
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.
 

Casi

Spartan
Registriert
21.12.07
Beiträge
1.601
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.
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. :/
 
Zuletzt bearbeitet:

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
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. :/
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.
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Schlanke Entwicklungsumgebung: X11+xterm(oder Terminal) + (ba)sh + vim + gcc/g++ + make

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

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
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.
 

harden

Roter Eiserapfel
Registriert
28.03.05
Beiträge
1.445
Wenn es nichts anderes für Mac OS X gibt !?

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.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
Wenn es nichts anderes für Mac OS X gibt !?
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.
 

Casi

Spartan
Registriert
21.12.07
Beiträge
1.601
Okay, ihr habt ja recht ;) :)


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.
Jop, schon gesehen :)
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Man kann auf die gute alte Art und Weise Makefiles erstellen.
...
Ergo, keine faulen Ausreden. Lern erstmal den Compiler auf der Kommandozeile zu benutzen...

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.
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
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.

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 ;)
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
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 ;)
Ist nur die Frage, wer alles Mögliche auf allen Plattformen machen will. Und wieso?
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
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.
 

below

Purpurroter Cousinot
Registriert
08.10.06
Beiträge
2.858
Du sagst es doch selbst:
Wenn mann einmal gelernt hat mit Makefiles umzugehen, gibt es wohl nichts Flexibleres.

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
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
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.
Ich soll mich mit einem CLI-Tool herumquälen, weil es zum Beispiel Serveranwendung gibt, die portabel sein sollen?
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
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.
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.

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.
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.
 

tjp

Altgelds Küchenapfel
Registriert
07.07.04
Beiträge
4.057
Ist nur die Frage, wer alles Mögliche auf allen Plattformen machen will. Und wieso?
Ein guter Softwareentwickler achtet darauf, daß seine Software möglichst plattformunabhängig ist, ein schlechter erkennt das Problem noch nicht einmal.