On Sunday 19 December 2010 04:14:06 Philipp Thomas wrote:
On Sat, 18 Dec 2010 16:25:29 +0900, Felix Lemke <felixlemke@arcor.de>
wrote:
ich versuche gerade ein wenig mit QT zu programmieren. Dazu rufe ich eine Funktion, die einen std::string verlangt auf und übergebe aber einen QString. Laut Dokumentation gibt es eine QString::toStdString-Funktion. Allerdings
beschwert sich der Compiler dann:
error: ‘class QString’ has no member named ‘toStdString’
Bitte frage in Zukunft auf opensuse-programming-de, die Liste ist für solche Fragen vorgesehen. Die englische opensuse-programming ist eine zusätzliche Anlaufstelle. Super, mir war nicht bewusst, das es die Liste gibt. @Sebastian: keine Angst, so leicht bin ich nicht vor den Kopf zu stoßen.^^
Nun habe ich im Internet gefunden, dass es daran liegen könnte, dass QT4 mit "- no-stl" kompiliert wurde. Einen Bugreport[0] (allerdings für openSuSE 10.0) habe ich gefunden.
Du gehst zu den Quellen des Pakets und schaust Dir die .spec Datei an: https://build.opensuse.org/package/view_file?file=libqt4.spec&package=libqt 4&project=KDE%3AQt&srcmd5=617ee411d69666cb19ed0176760284d4
Da siehst Du, mit welchen Optionen libqt4 übersetzt wurde. Also an der Übersetzung von QT bei openSUSE liegt es nicht.
Ich habe aber inzwischen den Fehler gefunden. In der CMakeLists.txt steht u.a. die Zeile
add_definitions(${QT_DEFINITIONS} ${KDE4_DEFINITIONS}) Dabei enthält die Variable ${KDE4_DEFINITIONS} u.a. die Anweisung "-DQT_NO_STL". Ich werde das jetzt also mal auf die KDE-devel-Mailingliste verschieben.
Danke für eure Hilfe. Erst das von Philipp vorgeschlagende Minimalbeispiel (und damit eine Minimal-CMakeLists.txt) hat mich auf die richtige Spur gebracht. Liebe Grüße Felix