Re: Sehr gesprächiger Compiler
Stefan Hundhammer <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Organization | SUSE Linux Products GmbH |
| Message-ID | <[email protected]> |
On Sunday 11 December 2005 21:41, Andreas Roth wrote: > Diese Meldung sind mit gcc 4 normal. Diese Fehler kannst aber getrost > ignorieren. Hmnaja - Recht hat er schon, der Compiler. Klassen mit virtuellen Funktionen sollten auch besser jeweils einen virtuellen Destruktor haben, sonst kann man spaÃige Effekte erleben, wenn man Pech hat. Dummerweise kann man (d.h. auch TrollTech oder wir von SuSE) das nicht so einfach richtig fixen: Wenn wir die angemeckerten Destruktoren virtuell machen und Qt damit neu bauen und nach auÃen geben, sind die entsprechenden Qt-Libs dann nicht mehr binärkompatibel mit den alten, d.h. alle Programme, die damit (dynamisch) gelinkt sind, müÃten auch neu gebaut werden - was ja nicht immer möglich ist, weil ja ggf. auch kommerzielle Software darauf basiert. > Eine Moeglichkeit waere eventuell das Warning-Level entsprechen > einzustellen oder die einzelne Warnung explizit auszuschalten. Ich persönlich habe mich damit beholfen, in den entsprechenden Qt-Headerfiles genau diese Meldung stillzulegen. Das geht mit #pragma GCC system_header in den angemeckerten Qt-Headerfiles. Bitte nicht für eigene Header verwenden - damit sagt man GCC "das ist ein heiliges System-Includefile, das kommt von den allwissenden Gurus, die hoffentlich wissen, was sie tun". Siehe auch https://bugzilla.novell.com/show_bug.cgi?id=119209 und angehängter Patch (in /usr/lib/qt3 anwenden). CU -- Stefan Hundhammer <[email protected]> Penguin by conviction. YaST2 Development SUSE Linux Products GmbH Nuernberg, Germany -- Um die Liste abzubestellen, schicken Sie eine Mail an: [email protected] Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: [email protected]
qt-header-warnings-fix.diff
(text/x-diff, 1.1 KB)
Gemeinsame Unterverzeichnisse: include.orig/private und include/private. diff -u -bBw include.orig/qfiledialog.h include/qfiledialog.h --- include.orig/qfiledialog.h 2005-09-13 02:18:56.000000000 +0200 +++ include/qfiledialog.h 2005-09-29 17:44:30.000000000 +0200 @@ -38,6 +38,8 @@ #ifndef QFILEDIALOG_H #define QFILEDIALOG_H +#pragma GCC system_header + class QPushButton; class QButton; class QLabel; diff -u -bBw include.orig/qnetworkprotocol.h include/qnetworkprotocol.h --- include.orig/qnetworkprotocol.h 2005-09-13 02:18:57.000000000 +0200 +++ include/qnetworkprotocol.h 2005-09-29 17:44:06.000000000 +0200 @@ -38,6 +38,8 @@ #ifndef QNETWORKPROTOCOL_H #define QNETWORKPROTOCOL_H +#pragma GCC system_header + #ifndef QT_H #include "qurlinfo.h" #include "qstring.h" diff -u -bBw include.orig/qtooltip.h include/qtooltip.h --- include.orig/qtooltip.h 2005-09-13 02:18:57.000000000 +0200 +++ include/qtooltip.h 2005-09-29 17:46:12.000000000 +0200 @@ -36,6 +36,8 @@ #ifndef QTOOLTIP_H #define QTOOLTIP_H +#pragma GCC system_header + #ifndef QT_H #include "qwidget.h" #endif // QT_H