LNK4099链接器警告,干净安装Qt SDK和Visual C ++ 2008

时间:2011-12-02 16:37:41

标签: c++ windows qt qt4 qt-creator

使用以下命令在新的Windows 7计算机上进行了全新安装:

  • Visual Studio 2008 SP1
  • Qt SDK 1.1.4

然后我在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的开箱即用体验不应该涉及编译器/链接器警告吗?!?!

如何解决此链接器警告?我更喜欢将警告视为错误,所以...我想解决这个问题。

5 个答案:

答案 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。