LNK4099 linker-Warnung mit sauberen Installation von Qt-SDK und Visual C++ 2008
Habe eine Neuinstallation auf einem neuen Windows 7-computer mit:
- Visual Studio 2008 SP1
- Qt-SDK 1.1.4
Dann erstellte ich ein neues Projekt im Qt Creator. Ich nahm "Qt-Gui-Anwendung" unter "Qt-Widget-Projekt" und hatte es für desktops mit Visual C++ 2008, sowohl debug-als & release (im wesentlichen default-Einstellungen).
Dann drückte ich Bauen, und bekam....
qtmaind.lib(qtmain_win.obj):-1: warning: LNK4099: PDB 'vc90.pdb' was not
found with 'c:\QtSDK\Desktop\Qt\4.7.4\msvc2008\lib\qtmaind.lib' or at
'C:\Users\JamesJ\Desktop\QtTest-build-desktop-Qt_4_7_4_for_Desktop_-
_MSVC2008__Qt_SDK__Debug\debug\vc90.pdb'; linking object as if no debug info
Ich muss etwas fehlen offensichtlich - sicherlich die out-of-box-Erfahrung mit Qt soll nicht beinhalten compiler/linker-Warnungen?!?!
Wie kann ich dies beheben linker-Warnung? Ich bevorzuge die Behandlung von Warnungen als Fehler, also... ich würde gerne dieses fest.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Pfad zu
vc90.pdb
eingebettet inqtmain_win.obj
ist nicht der gleiche Weg, der in deinen linker-Einstellungen.Gemäß den Anweisungen im dieser Artikel:
In den linker-Einstellungen
Properties->Linker->Debugging->Generate Program Database File
hat den Wert$(TargetDir)$(TargetName).pdb
.In der C/C++ - Einstellungen
Properties->C/C++->Output Files->Program Database File
sollte auch eingestellt werden$(TargetDir)$(TargetName).pdb
(der Standardwert ist$(IntDir)\vc90.pdb
).Gelingt das nicht, können Sie versuchen, die Reinigung und den Wiederaufbau der Debug-build.
.pdb
Dateien (ich glaube nicht, dass der Qt Creator verwenden kann), indemQMAKE_CFLAGS_RELEASE = /Z7
imqmake.conf
für win32-msvc2008. Diese bettet alle debugging-Informationen in der.obj
- Dateien. Wenn Sie brauchen, um zu verwenden.pdb
Dateien, stellen Sie sicher, dassqmake.conf
eingerichtet ist, wie folgt.pdb
- Dateien. Ich benutze Qt mit Visual Studio über das Visual Studio-Add-in, also ich bin nicht sehr vertraut mit Qt Creator. Hab die Qt-SDK kommen mit.pdb
Dateien? (Meine Qt-setup wurde gebaut von der Quelle.) Ich Frage mich, was passieren würde, wenn Sie entweder 1) reinigen Sie Sie, oder 2) kopiert eine.pdb
von der.obj
Verzeichnis in das Verzeichnis, woqtmaind.lib
Leben? (#2 möglicherweise nicht eine option sein.)Separat installieren der Qt-Bibliothek (4.8.2) und Qt Creator (2.5.2) hier gearbeitet. Ich bekomme nicht mehr die warning LNK4099.
Stellen Sie sicher, um die Einstellungen zu entfernen QtSDK hinterlässt: die Schlüssel in
KHCU\Software\Nokia
und die%APPDATA%\Nokia
Ordner.Aktualisierung der QT-Bibliothek manuell in QtSDK-Paket-manager möglicherweise auch funktionieren.
Nicht in der Lage war, eine Lösung zu finden, um diese. Ich bin mir sicher, dass das erneute kompilieren der Qt-würde das Problem beheben, aber ich der Einfachheit halber wollen stick mit, was installiert ist, die mit dem SDK für jetzt.
Hinzufügen
QMAKE_LFLAGS += /ignore:4099
zu Ihr .pro Datei.
wenn Sie wollen nicht zu schaffen .pdb-Dateien für Ihre ausführbaren Dateien oder Bibliothek hinzufügen
QMAKE_CXXFLAGS += /Z7
also debug-Informationen werden .obj-Dateien.
Die Sie vielleicht benötigen, um zu löschen Sie alle Makefiles* Aktualisierung der Hausordnung.
Getestet in Qt Creator 2.4.1 mit Microsoft Visual C ++ 2008 SP1
Dies geschieht, wenn Sie sich bewegen Qt-Verzeichnisse (d.h. diejenigen, die mit libs/PDB-Dateien) in ein anderes Verzeichnis nach der Kompilierung. Der Pfad zur PDB-Datei eingebettet ist, in den Bibliotheken, so dass, wenn Sie bewegen Sie den linker nicht finden.
Scheint mir, dass die sicherste/sauberste Problem ist für den Wiederaufbau Qt in die neue Position.