Visual studio 编译Qt库以使用visualstudio2008运行,为什么nmake会失败?

Visual studio 编译Qt库以使用visualstudio2008运行,为什么nmake会失败?,visual-studio,visual-studio-2008,qt,Visual Studio,Visual Studio 2008,Qt,我正在尝试让Visual Studio Qt插件正常工作,因此为了重新编译Qt库,我在VS命令提示符下运行了以下命令: c:\*Qtfolder*>configure -platform -win32-msvc2008 在此之后,我运行nmake并开始编译过程。由于链接错误,它运行了大约45分钟才中止。我总共收到了八个“未解决的外部符号”错误,都来自QNetworkReplyHandler.obj和frameLoaderClient.obj。这两个库都不是我需要的库,但由于它们的错误,编

我正在尝试让Visual Studio Qt插件正常工作,因此为了重新编译Qt库,我在VS命令提示符下运行了以下命令:

c:\*Qtfolder*>configure -platform -win32-msvc2008
在此之后,我运行nmake并开始编译过程。由于链接错误,它运行了大约45分钟才中止。我总共收到了八个“未解决的外部符号”错误,都来自QNetworkReplyHandler.obj和frameLoaderClient.obj。这两个库都不是我需要的库,但由于它们的错误,编译正在中止。当它真的中止时,其余的库似乎几乎完成了,事实上,我甚至可以在VisualStudio中加载和编译我的Qt项目,此时它们只是运行错误,这很可能是因为没有编译所有的库。有没有人遇到过这种情况,或者知道nmake失败的原因

似乎我可以告诉编译器尽管有错误,还是继续运行,或者忽略可能会起作用的有问题的库。Qt的配置有很多选项,但我找不到任何能满足我需要的选项,不幸的是,我找不到Qt配置选项的在线参考,谷歌搜索出来的所有东西都是为了“Qtopia”,因为某种原因

这是最后一个错误。还有七个基本上完全相同的错误,只是针对不同的符号

FrameLoaderClientQt.obj : error LNK2019: unresolved external symbol "protected:
void __thiscall QWebPage::downloadRequested(class QNetworkRequest const &)" (?do
wnloadRequested@QWebPage@@IAEXABVQNetworkRequest@@@Z) referenced in function "pu
blic: virtual void __thiscall WebCore::FrameLoaderClientQt::startDownload(struct
 WebCore::ResourceRequest const &)" (?startDownload@FrameLoaderClientQt@WebCore@
@UAEXABUResourceRequest@2@@Z)
..\..\..\..\lib\QtWebKitd4.dll : fatal error LNK1120: 8 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
\link.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

不确定这是否有帮助,但以下是我在Vista上成功构建Visual Studio Express 2008 Qt 4.5时使用的配置选项:

C:\Qt\2009.01\configure -无sql sqlite-无QT3支持-无opengl-平台win32-msvc2008-无libtiff-无dbus-无声子-无声子后端-无webkit

我从这里得到的


确保按照此处的所有说明进行操作,以便获得要在VS.中构建的示例。

显然,您可以通过删除
src/3rdparty/webkit/WebCore/tmp/moc/{debug,release}\u shared
中的
mocclude.tmp
的两个实例来避免这个特定错误。()


另外,当您运行configure时,您可以向它传递一个“help”参数,以获得它能理解的参数列表(即
configure help
)。

在阅读richardwb的答案后,我浏览了Qt论坛,找到了要运行configure并使用-no-webkit选项来跳过有问题的库的选项。最后的configure命令如下所示

configure -no-webkit -platform win32-msvc2008

我将尝试这个和richardwb的解决方案,并在完成后进行更新

这是我使用的主要参考之一,我尝试过使用configure.exe的命令行参数,但它们都给出相同的结果,nmake失败并出现相同的链接错误。我们能看到这些未解决的外部符号错误吗?@richard,我把它添加到问题中了谢谢,我来试试。我在我的机器上看到了配置帮助,只是找不到可链接的在线参考。我最终尝试使用/K选项使nmake在出错后继续,但我遇到了同样的问题。这个解决方案效果最好。如果执行-no-webkit选项,它会成功编译,但当您尝试将Qt项目导入VS时,它会失败,并出现“不兼容的Qt库”(或类似错误)。