代码之家  ›  专栏  ›  技术社区  ›  Graphics Noob

编译qt库以与Visual Studio 2008一起运行,为什么nmake失败?

  •  4
  • Graphics Noob  · 技术社区  · 15 年前

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

    c:\*Qtfolder*>configure -platform -win32-msvc2008
    

    之后,我运行了nmake并开始了编译过程。它运行了大约45分钟,然后由于链接错误而中止。我总共有八个“未解决的外部符号”错误,都来自qnetworkreplyhandler.obj和frameloaderclientqt.obj。这两个库都不是我需要的,但是由于它们的错误,编译将被中止。当它确实中止时,剩下的库似乎就要完成了,事实上我甚至可以在Visual Studio中加载和编译我的qt项目,因为它们只是运行错误,因为很可能不是所有的库都在编译。有没有人遇到过这个问题,或者可能知道为什么恩马克失败了?

    似乎如果我能告诉编译器不管出现错误都要继续运行,或者忽略有问题的库,它可能会工作。qt的configure有很多选项,但我找不到任何可以满足我需要的选项,不幸的是,我找不到qt的configure选项的在线参考,谷歌搜索的所有内容都是“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.
    
    3 回复  |  直到 15 年前
        1
  •  4
  •   richardwb    15 年前

    显然,您可以通过删除 mocinclude.tmp 在里面 src/3rdparty/webkit/WebCore/tmp/moc/{debug,release}_shared . ( Source )

    作为旁白,运行configure时,可以向它传递一个“help”参数,以获取它能理解的参数列表(即 configure help )

        2
  •  2
  •   Karl Voigtland    15 年前

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

    C:\qt\2009.01\配置 -无SQL sqlite-无qt3support-无OpenGL-平台win32-msvc2008-无libtiff-无dbus-无phonon-无phonon后端-无webkit

    我从这里得到的 Qt 4.5 with Visual Studio 2008 (VC++ Express) HowTo .

    确保遵循那里的所有说明,以便获得构建在vs中的示例。

        3
  •  1
  •   Graphics Noob    15 年前

    我读了理查德沃的答案后浏览了qt论坛,发现 another proposed solution 它是使用-no webkit选项运行configure来跳过有问题的库。最后的配置命令如下所示

    configure -no-webkit -platform win32-msvc2008
    

    我将尝试这个和理查德沃的解决方案,完成后更新。