Qt + STL support

Alles rund um die Programmierung mit Qt
Antworten
Kext
Beiträge: 8
Registriert: 14. Mai 2006 21:40
Kontaktdaten:

Qt + STL support

Beitrag von Kext »

Hallo,

ich benutze zur Zeit Qt 3.3.7 unter Windows.
Zusätzlich setze ich die STLPort ein.
Ich habe jetzt überlegt, das ich beim Bauen der Qt dieser das ja sicher mitteilen sollten. (include Pfad setzen)
Da stellt sich mir nun die Frage, warum kann ich in dem Reconfigure von Qt überhaupt die STL aktivieren/deaktivieren. Sprich was passiert dadurch und wie wirkt sich das einbinden der STL aus?

Gruß Kext
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

die QT ist auch "abhaengig" von der STL,
und noch schlimmer, die gibt stl klassen ueber ihre schnittstellen ...

die standard STL impl deines compilers, und die STLPort impl (wenn nicht anderer namespace eingeschaltet wurde) teilen sich aber die symbole !

also die QT z.b. verwendet bei QString::toStdString() den std::string aus der standard STL impl, und dein program denkt das es der std::string aus dem STLPort ist (er kennt ja nix anderes) ... und die beiden absolut ned binaerkompatibel sein muessen ... interpretiert dein compiler das ding als was anderes als es ist, und spaetestens zur Laufzeit beginnt der Alptraum ^^

deswegen sollte die QT mit der selben stl uebersetzt werden ...

Ciao ...
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag von PeterLustig »

Nur so eine Erwähnung:

Hast du schonmal über ein Update nachgedacht? Qt 3 ist maßlos veraltet.
Kext
Beiträge: 8
Registriert: 14. Mai 2006 21:40
Kontaktdaten:

Beitrag von Kext »

@RHBaum
- thx, das habe ich befürchtet

@PeterLustig
- da denke ich oft drüber nach. ist aber auf grund der projektgröße nicht mehr möglich. da es eine 24/7 anwendung ist, möchte ich auch keine spielerein anfangen
Kext
Beiträge: 8
Registriert: 14. Mai 2006 21:40
Kontaktdaten:

Beitrag von Kext »

Aber noch mal zurück zur Frage, was bedeutet den das Aktivieren des "STL Häkchens"?
Kext
Beiträge: 8
Registriert: 14. Mai 2006 21:40
Kontaktdaten:

Beitrag von Kext »

Hat niemand eine Idee, was die STL Option im Reconfigure macht?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Code: Alles auswählen

-no-stl ............... Do not compile STL support.
-stl .................. Compile STL support.
-no-stl setzt also QT_NO_STL und damit wird der STL-support aus Qt entfernt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Kext
Beiträge: 8
Registriert: 14. Mai 2006 21:40
Kontaktdaten:

Beitrag von Kext »

Christian danke für deine Antwort,

das Ausschalten des STL Supports ist mir schon klar. Ich verstehe nur nicht, was STL Support bedeutet.
Sorry für meine ungenaue Anfrage...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Kext
Beiträge: 8
Registriert: 14. Mai 2006 21:40
Kontaktdaten:

Beitrag von Kext »

Aah :idea: ;-)

Code: Alles auswählen

class Q_EXPORT QString
{
public:
    QString();                                  // make null string
    QString( QChar );                           // one-char string
    QString( const QString & );                 // impl-shared copy
    QString( const QByteArray& );               // deep copy
    QString( const QChar* unicode, uint length ); // deep copy
#ifndef QT_NO_CAST_ASCII
    QString( const char *str );                 // deep copy
#endif
#ifndef QT_NO_STL
    QString( const std::string& );                   // deep copy
#endif
.
.
.
thx...
Antworten