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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.