使用以下命令在新的Windows 7计算机上进行了全新安装:
然后我在Qt Creator中创建了一个新项目。我在“Qt Widget Project”下选择了“Qt Gui Application”,并使用Visual C ++ 2008定位桌面,包括调试和调试。发布(基本上是默认设置)。
然后我按了Build,得到了......
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
我必须遗漏一些明显的东西 - 当然,Qt的开箱即用体验不应该涉及编译器/链接器警告吗?!?!
如何解决此链接器警告?我更喜欢将警告视为错误,所以...我想解决这个问题。
答案 0 :(得分:3)
vc90.pdb
中嵌入qtmain_win.obj
的路径与链接器设置中设置的路径不同。
根据this article中的说明:
在链接器设置中,Properties->Linker->Debugging->Generate Program Database File
的值为$(TargetDir)$(TargetName).pdb
。
在C / C ++设置中,Properties->C/C++->Output Files->Program Database File
应也设置为$(TargetDir)$(TargetName).pdb
(其默认值为$(IntDir)\vc90.pdb
)。
如果失败,您可以尝试清理并重建Debug版本。
答案 1 :(得分:1)
单独安装Qt Library(4.8.2)和Qt Creator(2.5.2)在这里工作。我不再收到LNK4099警告。
确保删除QtSDK留下的设置:KHCU\Software\Nokia
和%APPDATA%\Nokia
文件夹中的键。
在QtSDK软件包管理器中手动升级QT库也可能有效。
答案 2 :(得分:0)
无法找到解决方法。我确信重新编译Qt会解决问题,但为了简单起见,我想坚持使用SDK安装的内容。
答案 3 :(得分:0)
添加
QMAKE_LFLAGS += /ignore:4099
到你的.pro文件。
如果您不想为可执行文件或库添加创建.pdb文件
QMAKE_CXXFLAGS += /Z7
所以调试信息将放入.obj文件。
您可能需要删除所有Makefile *以更新构建规则。 使用MSVC 2008 SP1在Qt Creator 2.4.1中测试
答案 4 :(得分:0)
在编译后将Qt目录(即包含libs / pdbs的目录)移动到其他目录时会发生这种情况。 PDB文件的路径嵌入在库中,因此当您移动它们时,链接器无法找到它。
对我来说,最安全/最干净的问题是在新地点重建Qt。