在Windows 7和MSVC下编译QT 5.3.2

3
我正在使用msvc 2013(ultimate-64bit)和Windows 7 64位系统。 我编译了icu4c 54.1,并且使用msvc 2013(64位)进行编译。 现在,我尝试编译qt 5.3.2-everywhere-opensource-src(我添加了一个补丁并替换了QWebFrame.cpp)。 我使用的是visual studio的CMD开发工具。
接下来,我执行以下命令: 1. cd D:\qt 2. d: 3. configure -prefix D:\Qt\Qt_making -platform win32-msvc2013 -opensource -c++11 -make tools -make libs -qt-sql-sqlite -no-openssl -icu -I C:\icu-53.1-vs2013\include -L C:\icu-53.1-vs2013\lib64 // 所有OK - 完成后,加载了include/新的icu库 4. nmake 然而在第四个命令之后,该进程被中断并显示出错信息:36个未解析的外部符号,这些'未解析的外部符号'可能与库有关。错误截图如下:
所以问题出在哪里呢?
我需要编译QT(特别是QWebKit - 因为要打补丁,全都是64位的)。

你好,你解决了这个问题吗? - magrif
1个回答

1
上次我为了获得OpenGL桌面版本而在Windows上编译Qt时,需要执行以下操作。请注意,这是在Windows 7上使用VS2010和Qt 5.0.0进行的。
set CL=/MP

if not compiling qtwebkit:
    Need to rename/delete the qtwebkit* directories (there's a -no-webkit option but it doesn't work in 5.0.0)
else:
    Need ICU, GNU bison, and GNU gperf (either install the prebuilt binaries or build yourself)

if using ICU (required for qtwebkit):
    set LIB=%LIB%;C:\icu\lib
    set INCLUDE=%INCLUDE%;C:\icu\include
    set PATH=C:\icu\bin;%PATH%

set PATH=%PATH%;C:\Program Files (x86)\gperf\bin;C:\bison\bin
cd <path>\qt-everywhere-opensource-src-<version>
configure -prefix C:\Qt\Qt5.0.0-opengl-desktop -opensource -debug-and-release -platform win32-msvc2010 -opengl desktop -no-cetest -nomake tests -nomake examples -confirm-license -ltcg -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -mp
nmake
nmake install

if used ICU:
    copy all the DLLs from C:\icu\bin to C:\Qt\Qt5.0.0-opengl-desktop\bin

好的,我已经按照你的方法编译了QT。所有都编译得很好。但是没有QtWebKit,我执行了 nmake module-qtwebkitnmake install,但仍然没有qtwebkit。根据你的方法编译出来的结果如链接到图片所示。 - Thomas Banderas
@Thomas:嗯,对此我感到很抱歉。我相当确定当时编译了webkit,但正如我之前提到的那样,那是一段时间以前的事情了。(我将其作为答案是因为它太长了,不适合作为评论。)也许如果您尝试显式传递“-webkit”标志给“configure”会有所帮助?另外,您是如何获得那个屏幕截图的?实际的“bin”安装目录中有哪些DLL文件? - Cameron
这个截图是我在Visual Studio 2013中的Qt项目设置中制作的。configure -prefix d:\Qt\Qt5.0.0-opengl-desktop -opensource -debug-and-release -platform win32-msvc2013 -webkit -no-cetest -nomake tests -nomake examples -confirm-license -ltcg -qt-zlib -qt-pcre -qt-libpng -qt-libjpeg -mp -webkit 'unknown option' - Thomas Banderas
@Thomas: 哎呀,回头看我查阅的文档,似乎“-webkit”只适用于4.8版本。恐怕我不知道如何编译超出我已经放在答案中的内容的webkit了,而你说这个方法不起作用:/ 你确定DLL不在前缀路径的“bin”目录中吗? - Cameron
是的 - MSVC 没有检测到 WebKit。 - Thomas Banderas
@Thomas:嗯,这很烦人。我稍微查了一下——是否有可能需要单独下载和构建“qtwebkit”?似乎有一个专门的存储库供其使用:https://qt.gitorious.org/qt/qtwebkit/source/946088cf515ec30de586392ec72e4658b86650a4: - Cameron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接