Version of QT to build openrpt apps?

  • Hi Folks,

    I'm trying to build the openrpt apps from source, but I'm guessing I'm using too recent a version of Qt (Qt-4.3.3).

    What version do you guys use to build against?

    I'm getting:

    g++ -c -m64 -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/Trolltech/Qt-4.3.3/mkspecs/linux-g++-64 -I. -I/usr/local/Trolltech/Qt-4.3.3/include/QtCore -I/usr/local/Trolltech/Qt-4.3.3/include/QtCore -I/usr/local/Trolltech/Qt-4.3.3/include/QtGui -I/usr/local/Trolltech/Qt-4.3.3/include/QtGui -I/usr/local/Trolltech/Qt-4.3.3/include -I. -Icommon -Igraph -IMetaSQL -IOpenRPT/common -IOpenRPT/import_gui -IOpenRPT/renderer -IOpenRPT/writer -IOpenRPT/wrtembed -IOpenRPT/images -I. -I. -o dbtools.o common/dbtools.cpp
    In file included from common/dbtools.cpp:21:
    common/dbtools.h:25:24: error: QSqlDatabase: No such file or directory
    common/dbtools.h:39: error: ‘QSqlDatabase’ does not name a type
    common/dbtools.cpp:57: error: ‘QSqlDatabase’ does not name a type

    but QSqlDatabase is now in:


    which didn't get put in the include list by qtmake.


    • OK.. replying to myself.. I got past the QtSql include problem by hand-editing the generated Makefile to include the QtSql include directory.. but then hit a bunch of other compile errors, that may also be Qt Version related:

      common/languageoptions.cpp:16: error: ‘class QSettings’ has no member named ‘readEntry’
      common/languageoptions.cpp: In member function ‘void LanguageOptions::addLanguage(QString, QString)’:
      common/languageoptions.cpp:32: error: aggregate ‘QStringList content’ has incomplete type and cannot be defined
      common/languageoptions.cpp: In member function ‘void LanguageOptions::addTranslation(QString, QString)’:
      common/languageoptions.cpp:40: error: no match for ‘operator<<’ in ‘((LanguageOptions*)this)->LanguageOptions::_languages. QMap<Key, T>::operator[] [with Key = QString, T = QStringList](((const QString&)((const QString*)(& languageID)))) << translationFile’
      common/languageoptions.cpp: In member function ‘void LanguageOptions::select(QString)’:
      common/languageoptions.cpp:49: error: no matching function for call to ‘QSettings::setPath(const char [12], const char [8], QSettings::Scope)’
      /usr/local/Trolltech/Qt-4.3.3/include/QtCore/qsettings.h:167: note: candidates are: static void QSettings::setPath(QSettings::Format, QSettings::Scope, const QString&)
      common/languageoptions.cpp:50: error: ‘class QSettings’ has no member named ‘writeEntry’
      common/languageoptions.cpp: In member function ‘void LanguageOptions::installLanguage(QString)’:
      common/languageoptions.cpp:55: error: variable ‘QStringList content’ has initializer but incomplete type

      blah blah blah... until finally:

      /usr/local/Trolltech/Qt-4.3.3/include/QtCore/qmap.h:694: error: ‘struct QMap<QString, QStringList>::Node’ has no member named ‘value’
      make: *** [languageoptions.o] Error 1

      help. ;-)


    • Gil


      We've been building OpenRPT with Qt 4.3.2 but I don't think it's Qt 4.3.3 that's causing your build errors.

      The errors you see are probably caused by your Qt installation not having full Qt3 backwards-compatibility code. If you're using Qt that you built from sources, try reconfiguring with the -qt3support option and reinstalling.

      If you are using a binary distribution, try to find one with Qt3 support built in, although this /might/ not work. We've heard of problems with some binary distributions where the Qt3 support is incomplete. The safest way to build OpenRPT is currently to build Qt yourself.