Qt Creator, wo ist TR1?
-
Hey Leute,
für meine Qt-Projekte nutz ich den QtCreator, da man dort auch gut die GUI entwerfen kann. So da ist ja MinGW integriert. Jedoch erkennt er die ganzen TR1 sachen nicht.. zum Beispiel shared_ptr und Ähnliches...
Also hab extra memory inkludiert und es mit std::shared_ptr, sowie std::tr1::shared_ptr und tr1::shared_ptr probiert.Weiß da jemand was ob dass da nicht enthalten ist oder wie ich das hinbekomme?
Schonmal vielen Dank
Lg freeG
-
Also, falls der GCC neu genug ist, kannst du mit dem Compilerflag
-std=c++0x
die C++0x Features aktivieren.
Siehe: http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/C-Dialect-Options.html#index-std-99
Falls du nur shared Pointer willst, würde ich empfehlen im Moment noch Boost zu verwenden.
-
TR1 sollte auch ohne C++0x verfügbar sein.
-
Mhh, dasss mit dem Compilerflag werd ich mal versuchen, aber der TR1 muss doch trotzdem enthalten sein oder etwa nicht? Hat da jemand vielleicht schon Erfahrung mit?
Bin dankbar für jede Antwort=)
Lg freeG
-
Du schreibst nicht, was das Problem ist. "Erkennt nicht" sagt gar nix. Erkennt nur der Creator den Typ nicht (unterkringelt entsprechend), oder bekommst du einen Compile-Fehler?
Falls letzteres, dann existieren wahrscheinlich die Header nicht resp. enthalten shared_ptr nicht. Wühl dich doch mal durch deine MinGW-Installation.
Welche Versionen von QtCreator und MinGW verwendest du denn?
-
Also ich habe einmal MinGW 4.4.0 was von Qt mitinstalliert wurde und auch im Creator integriert ist, und einmal MinGW 4.4.1 was von CodeBlocks mitgelifert und integriert wurde. Bei CodeBlocks klappt alles.
Im CtCreator wirds einmal gekringelt unterstrichen, dass ers nicht kennt, zudem kommt noch vom Compiler die Fehlermeldung dass es einmal std::tr1 nicht gibt und auch, dass er den Typ nicht kennt.
Lg freeG und schonmal Danke für die Hilfe=)
-
Entweder du bleibst beim <memory>, dann musst du dem Compiler ein "-std=c++0x" mitgeben, denn shared_ptr gibts erst mit dem neuen Standard.
Oder du willst den shared_ptr aus tr1 verwenden, dann brauchst du <tr1/memory>.
Alles unter der Annahme, dass MinGW sich wie ein GCC unter Linux verhält (was ich annehme).
-
l'abra d'or schrieb:
Entweder du bleibst beim <memory>, dann musst du dem Compiler ein "-std=c++0x" mitgeben, denn shared_ptr gibts erst mit dem neuen Standard.
Oder du willst den shared_ptr aus tr1 verwenden, dann brauchst du <tr1/memory>.
Alles unter der Annahme, dass MinGW sich wie ein GCC unter Linux verhält (was ich annehme).Hey vielen Dank, es geht tatsächlich, genau wie du gesagt hast
Mich hatte es nur irritiert, da ich der Meinung war es ging so wie ichs probiert hab mit MinGW bei CodeBlocks, war aber wie ich gerade bemerkt hab falsch, dort gehts auch nur so wie du gesagt hast
Nur beim MSVC, da reicht ein einfaches memory und keine Flags, was vielleicht daran liegt, dass womöglich dort standardmäßig mit diesem Flag kompiliert wird.Auf jeden Fall, vielen Dank für die Hilfe=)
Lg freeG