Seite 1 von 1
Visual Studio liefert Warnungen im Qt Code
Verfasst: 27. Februar 2008 21:57
von pospiech
Ich habe Qt 4.3.4 aus den Quellen installiert und kompiliert.
Wenn ich nun ein Projekt kompiliere, dann bekomme ich die folgenden Warnungen im Qt Code
1>c:\programme\qt4\include\qtcore\../../src/corelib/thread/qmutex.h(122) : warning C4312: 'reinterpret_cast': Konvertierung von 'const quintptr' in größeren Typ 'QMutex *'
1>c:\programme\qt4\include\qtcore\../../src/corelib/thread/qreadwritelock.h(108) : warning C4312: 'reinterpret_cast': Konvertierung von 'const quintptr' in größeren Typ 'QReadWriteLock *'
1>c:\programme\qt4\include\qtcore\../../src/corelib/thread/qreadwritelock.h(151) : warning C4312: 'reinterpret_cast': Konvertierung von 'const quintptr' in größeren Typ 'QReadWriteLock *'
Was soll ich nun tun? Ignorieren, oder korrigieren. Wenn ja wie?
Matthias
Verfasst: 27. Februar 2008 22:38
von ConfusedSushi
die fehler treten auf wenn man die qt-header in ein project mit /W4 also warning-level 4 includiert.
du hast also drei möglichkeiten:
entweder die warnungen ignorieren (die schlechteste möglichkeit),
das warning-level auf 3 setzen,
oder gezielt diese warnungen abschalten ...
bei mir sieht das in etwa so aus:
Code: Alles auswählen
#pragma warning(push)
#pragma warning(disable: 4127 4311 4312 4512 6011)
#include <QtCore>
#include <QtGui>
#include <QtOpenGl>
#pragma warning(pop)
Verfasst: 27. Februar 2008 23:03
von pospiech
Wie ändere ich denn das Warning Level?
Verfasst: 27. Februar 2008 23:11
von ConfusedSushi
tut mir leid aber das muss an der stelle mal gesagt werden.
leute setzt ich mit den programmen/tools die ihr benutzt auch ein wenig auseinander
-> das is garantiert irgendwo in der hilfe zu finden
am einfachsten geht das in den projekt eigenschaften
dort unter
Configuration Properties -- C/C++ -- General -- Warning Level
Verfasst: 27. Februar 2008 23:18
von pospiech
Danke, hatte es inzwischen auch gefunden. Allerdings nicht in der Hilfe, sondern in einem anderen Foreneintrag.
Das Level war alledings schon auf 3 eingestellt und eine Änderung zu 2 oder 1 hat an den Warnungen auch nichts geändert. Erst wenn ich die Warnungen ganz ausschalte sind sie offensichtlich weg.
Matthias
Verfasst: 27. Februar 2008 23:20
von ConfusedSushi
warnungen ganz ausstellen ist keine gute idee,
da empfehl ich dir eher meine lösung.
welches visual studio benutzt du?
Verfasst: 27. Februar 2008 23:22
von pospiech
ConfusedSushi hat geschrieben:warnungen ganz ausstellen ist keine gute idee,
da empfehl ich dir eher meine lösung.
welches visual studio benutzt du?
Professional 2005
Verfasst: 27. Februar 2008 23:41
von ConfusedSushi
ich auch ...
warum das warning level runtersetzen nich funktioniert weiss ich dann nich,
bei mir funktioniert es
du kannst auch in den projekt eigenschaften gezielt warnungen ausschalten ...
Verfasst: 28. Februar 2008 14:49
von RHBaum
quintptr
Integral type for representing a pointers (useful for hashing, etc.).
QMutex * ... ohne kommentar
den quintptr erkennt er als festen 32 bit typ, obwohl der von der QT sicher bei 64bit varianten umgetypdeft wird ...
Damit schlaegt von M$ der 64 Bit kompatiblitaetstest durch ...
welchen man wiederum ganz einfach aussschalten kann ueber ...
Project / Eigenschaften / C++ / Allgemein / Nach 64-Bit-Portablitaetsproblemen suchen -> da auf nein
oder allgemein aus der compilerschalterliste da das /w64 rausnehmen
Ciao ...