Qt + STL support
Qt + STL support
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
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
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 ...
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
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Code: Alles auswählen
-no-stl ............... Do not compile STL support.
-stl .................. Compile STL support.
MfG Christian
'Funktioniert nicht' ist keine Fehlerbeschreibung
'Funktioniert nicht' ist keine Fehlerbeschreibung
-
Christian81
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Aah

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