Kann plötzlich nicht mehr kompilieren ... include-Reihenfolge?



  • Hiya zusammen,

    in meinem Projekt, dass mit Qt3 unter KDE 3.5.5 läuft und X11/OpenGL-Libraries verwendet, läuft ganz plötzlich (ich bin mir keiner Ursache bewusst) die Kompilation nicht mehr, mit der völlig sinnfreien Reihe von Fehlermeldungen:

    g++ -DHAVE_CONFIG_H -I. -I/home/sebastian/Programmierung/kaesum/src -I.. -I/usr/include/kde -I/usr/share/qt3/include -I. -DQT_THREAD_SUPPORT -D_REENTRANT -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align -Wconversion -Wchar-subscripts -g3 -fno-inline -O0 -g3 -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common -c /home/sebastian/Programmierung/kaesum/src/main.cpp
    /usr/share/qt3/include/qdir.h:80: error: expected identifier before numeric constant
    /usr/share/qt3/include/qdir.h:80: error: expected `}' before numeric constant
    /usr/share/qt3/include/qdir.h:80: error: expected unqualified-id before numeric constant
    /usr/share/qt3/include/qdir.h:89: error: expected unqualified-id before ‘)’ token
    /usr/share/qt3/include/qdir.h:90: error: expected unqualified-id before ‘const’
    /usr/share/qt3/include/qdir.h:90: error: expected `)' before ‘const’
    /usr/share/qt3/include/qdir.h:92: error: expected unqualified-id before ‘const’
    /usr/share/qt3/include/qdir.h:92: error: expected `)' before ‘const’
    /usr/share/qt3/include/qdir.h:94: error: declaration of ‘~QDir’ as non-member
    /usr/share/qt3/include/qdir.h:96: error: ‘QDir& operator=(const QDir&)’ must be a nonstatic member function
    /usr/share/qt3/include/qdir.h:96: error: ‘QDir& operator=(const QDir&)’ must take exactly two arguments
    /usr/share/qt3/include/qdir.h:97: error: ‘QDir& operator=(const QString&)’ must be a nonstatic member function
    /usr/share/qt3/include/qdir.h:97: error: ‘QDir& operator=(const QString&)’ must take exactly two arguments
    /usr/share/qt3/include/qdir.h:99: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:100: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:100: error: non-member function ‘QString path()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:101: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:101: error: non-member function ‘QString absPath()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:102: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:102: error: non-member function ‘QString canonicalPath()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:104: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:104: error: non-member function ‘QString dirName()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:106: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:106: error: non-member function ‘QString filePath(const QString&, bool)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:108: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:108: error: non-member function ‘QString absFilePath(const QString&, bool)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:112: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:113: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:115: error: non-member function ‘QString nameFilter()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:116: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:117: error: ‘FilterSpec’ does not name a type
    /usr/share/qt3/include/qdir.h:118: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:119: error: ‘SortSpec’ does not name a type
    /usr/share/qt3/include/qdir.h:120: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:122: error: non-member function ‘bool matchAllDirs()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:123: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:125: error: non-member function ‘uint count()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:126: error: non-member function ‘QString operator[](int)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:126: error: ‘QString operator[](int)’ must be a nonstatic member function
    /usr/share/qt3/include/qdir.h:126: error: ‘QString operator[](int)’ must take exactly two arguments
    /usr/share/qt3/include/qdir.h:128: error: ‘DefaultFilter’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:129: error: ‘DefaultSort’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:129: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:129: error: non-member function ‘QStrList encodedEntryList(int, int)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:131: error: ‘DefaultFilter’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:132: error: ‘DefaultSort’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:132: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:132: error: non-member function ‘QStrList encodedEntryList(const QString&, int, int)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:133: error: ‘DefaultFilter’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:134: error: ‘DefaultSort’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:134: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:134: error: non-member function ‘QStringList entryList(int, int)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:136: error: ‘DefaultFilter’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:137: error: ‘DefaultSort’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:137: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:137: error: non-member function ‘QStringList entryList(const QString&, int, int)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:139: error: ‘DefaultFilter’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:140: error: ‘DefaultSort’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:140: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:140: error: non-member function ‘const QFileInfoList* entryInfoList(int, int)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:142: error: ‘DefaultFilter’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:143: error: ‘DefaultSort’ was not declared in this scope
    /usr/share/qt3/include/qdir.h:143: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:143: error: non-member function ‘const QFileInfoList* entryInfoList(const QString&, int, int)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:148: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:148: error: non-member function ‘bool mkdir(const QString&, bool)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:150: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:150: error: non-member function ‘bool rmdir(const QString&, bool)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:152: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:152: error: non-member function ‘bool isReadable()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:153: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:153: error: non-member function ‘bool exists()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:154: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:154: error: non-member function ‘bool isRoot()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:156: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:156: error: non-member function ‘bool isRelative()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:157: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:159: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:159: error: non-member function ‘bool operator==(const QDir&)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:159: error: ‘bool operator==(const QDir&)’ must take exactly two arguments
    /usr/share/qt3/include/qdir.h:160: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:160: error: non-member function ‘bool operator!=(const QDir&)’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:160: error: ‘bool operator!=(const QDir&)’ must take exactly two arguments
    /usr/share/qt3/include/qdir.h:163: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:165: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:167: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:183: error: non-member function ‘void refresh()’ cannot have cv-qualifier
    /usr/share/qt3/include/qdir.h:185: error: expected unqualified-id before ‘private’
    /usr/share/qt3/include/qdir.h:192: error: virtual outside class declaration
    /usr/share/qt3/include/qdir.h:200: error: ‘FilterSpec’ does not name a type
    /usr/share/qt3/include/qdir.h:201: error: ‘SortSpec’ does not name a type
    /usr/share/qt3/include/qdir.h:202: error: invalid function declaration
    /usr/share/qt3/include/qdir.h:203: error: invalid function declaration
    /usr/share/qt3/include/qdir.h:206: error: ‘friend’ can only be specified inside a class
    /usr/share/qt3/include/qdir.h:207: error: expected declaration before ‘}’ token
    /usr/share/qt3/include/qdir.h:110: warning: ‘QString convertSeparators(const QString&)’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:145: warning: ‘const QFileInfoList* drives()’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:169: warning: ‘char separator()’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:171: warning: ‘bool setCurrent(const QString&)’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:172: warning: ‘QDir current()’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:173: warning: ‘QDir home()’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:174: warning: ‘QDir root()’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:175: warning: ‘QString currentDirPath()’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:176: warning: ‘QString homeDirPath()’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:177: warning: ‘QString rootDirPath()’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:179: warning: ‘bool match(const QStringList&, const QString&)’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:180: warning: ‘bool match(const QString&, const QString&)’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:181: warning: ‘QString cleanDirPath(const QString&)’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:182: warning: ‘bool isRelativePath(const QString&)’ declared ‘static’ but never defined
    /usr/share/qt3/include/qdir.h:194: warning: ‘void slashify(QString&)’ declared ‘static’ but never defined
    make[2]: *** [main.o] Error 1
    <br />
    make[1]: *** [all-recursive] Error 1
    make: *** [all-recursive-am] Error 2
    *** Exited with status: 2 ***
    

    Sehr seltsam. Dabei verwende ich qdir.h noch nicht einmal ansatzweise. In einem älteren Thread in der Qt-Mailingliste habe ich den Tip gefunden, meine Include-Verzeichnisse dem Compiler so mitzuteilen, dass die Qt-Includes an erster Stelle stehen. Nur wie mache ich das? In KDevelop hab ich bisher noch nichts passendes gefunden, wo man die Reihenfolge einstellen kann.
    Oder hat hier schonmal einer das oder ein ähnliches Problem gehabt und weiß es zu lösen?
    Ich wäre euch dankbar für alle Hilfen, denn so kann ich ja nun gar nichts tun.

    Sebastian



  • Du musst dir anschauen, was der Präprozessor aus der angemopperten Stelle macht. Dann siehst du warum das ein Fehler ist. Dann kannst du dich auf die Suche nach dem Define oder so machen, das den Fehler verursacht. Dann weiss man meistens auch schon die Lösung.


Anmelden zum Antworten