VC 2005 EE, Dev-C++ oder Code::Blocks für plattformunabhängige Entwicklung?
-
Hallöchen,
ich bin grad krätig am C++ lernen und mein Ziel ist das plattformunabhängige Entwickeln von kleinen Tools und 2D/3D Spielchen. Nach aufmerksamen Lesen im Netz habe ich mich da für die Kombi C++/STL/Boost/wxWidgets/SDL/OpenGL entschieden und habe auch schon die 3 IDEs Dev-C++, Code::Blocks und Visual C++ 2005 Express Edition ein bissle ausprobiert. Den besten Compiler soll ja wohl M$ drinne haben. Ich habe da jetzt folgende Fragen:
1. Wenn ich mich für VC 2005 EE entscheide ist es dann recht einfach die Sources mit unter Linux oder Mac OSX in einer ähnlichen kostenlosen IDE zu kompilieren?
2. Dev-C++ ist ja recht einfach zu händeln für ganz kleine Geschichten, habe aber auch Negatives über die IDE gehört. Was ist denn konkret das Problem mit der IDE?
3. Ich probiere gerade die Nigthly Builds von Code::Blocks aus. Wie ist eure Erfahrung mit der IDE in Kombi mit ner aktuellen MinGW-Version?
Gruß Chris
-
C++ und STL? Zu C++ gehört eh die Standardlib, und die STL würde ich nicht extra dazu nehmen.
Im ernst, warum sagen alle immer STL? Die STL ist zur Zeit bei SGI in Pflege und sogar leicht inkompatibel zur Standardlib, da sie ein ganz anderer Entwicklungszweig ist. Ihr meint alle sicherlich immer die Standardlib?! (ich weiß, ist Erbsenzählerei, will ich aber auch mal machen dürfen)
1. Ja, denn den Sourcecode tippst du ein. Und wenn du nicht portablen Code in die IDE einhackst, kann VC++2005EE nichts dafür. Soll heißen, du bist für die Portabilität verantwortlich, und nicht die IDE. Wichtig für eine Compilierung unter anderen Platformen ist dann eher das Build-File. Das Build-System von VS ist natürlich nicht portabel, wenn nicht jemand unter Linux einen Converter geschrieben haben sollte. Deshalb mußt du zus. ein platformübergreifendes Build-System einsetzen, das du nebenbei pflegst. Meine pers. Favoriten sind SCons und BBv2, zu denen du hier im Magazin-Forum auch jeweils einen Artikel findest.
2. Diese wird anscheinend nicht weiter entwickelt. Wenn das kein Zukunft-PROBLEM ist, dann weiß ich auch nicht. Der neue Hoffnungsschimmer ist halt Codeblocks.
3. C::B ist zur Zeit die einzige OpenSource-IDE die Potenzial aufweist. Ich war schon von der Version von vor einem Jahr beeindruckt. Heute muß sie schon sehr gut sein, für ein so junges Projekt.
-
Ja ich meinte die Standardlib, wuste garnich dass dann die ursprüngliche STL auch neben dem Standard weiterentwickelt wird. Ist ja wie mit Joomla und Mambo. Gemeinsame Basis aber jeder geht seinen eigenen Weg.
Nun gut, werde die STL nicht mehr extra erwähnen *grins. Hoffe das ich Boost bald auch nicht mehr extra schreiben muss. Habe zwar noch nix damit gemacht aber das Gelesene darüber hört sich wirklich nicht schlecht an besonders noch mit diesem ASIO.
Ich werde erstmal mit den Nightly Build rumspielen. Scheint ja wirklich ne IDE mit Zukunft zu sein und mit wxSmith haben sie schonmal nen netten wxWidgets Designer mit drinne. In wie fern der was taugt werde ich sehen. Jedenfalls gibt es fast jeden Tag ein neues Release.
-
justchris schrieb:
1. Wenn ich mich für VC 2005 EE entscheide ist es dann recht einfach die Sources mit unter Linux oder Mac OSX in einer ähnlichen kostenlosen IDE zu kompilieren?
Das hat IMHO mit der IDE nix zu tun. Du kannst verwenden was Du willst. Wenn Du keinen Code schreibst, der portable ist, dann kann die IDE nix dafür.
-
justchris schrieb:
Ja ich meinte die Standardlib, wuste garnich dass dann die ursprüngliche STL auch neben dem Standard weiterentwickelt wird. Ist ja wie mit Joomla und Mambo. Gemeinsame Basis aber jeder geht seinen eigenen Weg.
Da geht nix seinen eigenen Weg, die STL ist Teil der Standardlib und die wiederum ist genau im ISO C++ Standard definiert.
Zur IDE Frage:
Dev-Cpp hatte in der Vergangenheit oft mit fiesen Bugs zu kämpfen. So ist z.B. die IDE abgestürzt, wenn du einen beliebigen Bug im Quellcode hattest. Solche Geschichten zogen sich recht lange durch die Versionen. Ich würde dir daher davon abraten.Code::Blocks ist wirklich eine sehr gute IDE, plattoforumunabhängig, Open-Source, flexibel und sie bietet einiges. Empfehlenswert.
Aber auch VC++ 05 EE ist durchaus zu empfehlen.
MfG
GPC
-
Jochen Kalmbach schrieb:
Das hat IMHO mit der IDE nix zu tun. Du kannst verwenden was Du willst. Wenn Du keinen Code schreibst, der portable ist, dann kann die IDE nix dafür.
Ich meinte schon wenn der Code portabel gehalten ist.
Danke für die Antworten, ich werde dann erstmal mein Glück mit Code::Blocks probieren. Den Compiler kann man ja auch dort beliebig wechseln. Ich habe da das neuste Paket von MinGW mit dem g++ genommen.
Funktioniert alles bis jetzt, nun muss ich mal schauen wie ich in MinGW die Boost Lib unterbringe.
-
GPC schrieb:
Da geht nix seinen eigenen Weg, die STL ist Teil der Standardlib und die wiederum ist genau im ISO C++ Standard definiert.
Sorry GPC, aber da hast du leider unrecht. Lies dir mal das Interview mit A. Stepanov durch. Die STL wird kontinuierlich erweitert und ist somit weit über dem hinaus, was mal in den Standard eingelossen ist. Ganz davon abgesehen, das schon damals die STL nicht 100% in ihrer orig. Form übernommen wurde. Hier ein Ausschnitt aus dem Interview:
Are you still working on STL? Doing what?
Answer:
My group at SGI, - Matt Austern, Hans Boehm and myself, - just finished a new version of STL. It includes hash containers, thread safe memory allocation and spectacular web documentation. SGI released it into the public domain (http://www.sgi.com/Technology/STL). We hope that we will be able to keep STL growing. Multidimensional data structures, persistence, multithreading are among the things that we plan do add. Well, it is not clear how long we can keep doing this stuff. There are no support from my management for any of the STL/generic programming activities. It is very hard to explain to them why SGI should pay for extensions. (It was equaly hard to explain it to HP management. They canceled my project 5 months after STL was accepted into the standard.)Quelle: http://www.stlport.org/resources/StepanovUSA.html
Hash Containers z.B. hat die Std-Lib nicht. Wer die STL benutzt, muß damit rechnen, das sein Programm auf einem reinen ISO-C++ System nicht compilierbar ist. Ich weiß, ist erbsenzählerei... aber mich stört es schon immer das die Stabndardlib als STL bezeichnet wird, vorallem da die Std-Lib mehr als nur die damalige STL drin hat.
Voralem, wollt ihr 2009 dann immer noch von der STL reden, obwohl dann die Standardlib mit Boost u.a. erweitert wird. Macht doch irgendwann keinen Sinn, wenn man es immer falsch bezeichnet...