Building Qt-4.8.7 and qtwebkit-2.3.4 separately with VS2012 on Windows



  • Building Qt on Windows is quite a difficult work, while the work on OS X and Ubuntu is really simple. The main problem is QtWebKit. Official release provides precompiled Qt4 SDKs for VS2010 but not VS2012; project qt64ng on http://sourceforge.net/projects/qt64ng/ also provides Qt4 SDKs for VS2012 and VS2013, but not detail building steps.

    Tutorials on internet provide some instructions on building Qt-4.8 with VS2012, but the generated QtWebKit4.dll doesn't work, encountering error StackHash_0a9e (tested on Win7 and Win10). This tutorial focus on details of building Qt-4.8.7, qtwebkit-2.3.4 and qtcreator-2.8.1.

    Preparations

    Install Visual Studio 2012 Express for Desktop
    Use tool 'Developer Command Prompt for VS2012' for following jobs.

    Install perl
    http://www.activestate.com/activeperl

    Build OpenSSL
    Download source code: http://www.openssl.org/source/openssl-1.0.2d.tar.gz
    Decompress to directory: C:\Users\username\Downloads\openssl-1.0.2d
    Compile and install(installing directory: C:\OpenSSL)

    cd C:\Users\username\Downloads\openssl-1.0.2d
    perl Configure VC-WIN32 no-asm --prefix=C:\OpenSSL
    ms\do_ms
    nmake -f ms\ntdll.mak
    nmake -f ms\ntdll.mak install

    Append C:\OpenSSL\bin to system path

    Build Qt-4.8.7 without qtwebkit(-no-webkit)

    Change work directory to Qt source root directory, and run:
    configure -mp -prefix C:\Qt\4.8.7 -release -confirm-license -opensource -qt-zlib -qt-libjpeg -qt-libpng -qt-libmng qt-libtiff -no-qt3support -no-webkit -nomake demos -nomake examples -openssl -I C:\OpenSSL\include -L C:\OpenSSL\lib

    Compile Qt source:
    namke
    (It takes about 2hr to finish compiling.)

    Install Qt SDK:
    namke install

    Append C:/Qt/4.8.7/bin to system path

    Build QtWebKit-2.3.4

    Download source code from
    http://download.kde.org/stable/qtwebkit-2.3/2.3.4/src/qtwebkit-2.3.4.tar.gz
    Note that the lastest WebKit source code from webkit.org doesn't support .

    Install necessary tools for building qtwebkit:

    GNUWIN32
    http://sourceforge.net/projects/gnuwin32/
    or from gnuwin32 in Qt-5.5.0 source code directory

    python
    https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi

    ruby
    https://www.ruby-lang.org/en/downloads/

    perl(already installed)
    http://www.activestate.com/activeperl

    Make sure binaries directories of above tools are in system path.

    sqlite source code
    http://sqlite.org/2015/sqlite-amalgamation-3081101.zip
    Decompress it to:
    C:\Users\username\Downloads\sqlite3

    Compile qtwebkit:

    set SQLITE3SRCDIR=C:\Users\username\Downloads\sqlite3
    set QTDIR=C:\Qt\4.8.7
    perl Tools\Scripts\build-webkit --qt --release

    It takes about 4hr to finish compiling.

    Install QtWebKit:

    cd WebKitBuild/Release
    nmake install

    Test QtWebKit

    In fact,after buidling QtWebKit,a test program called QtTestBrowser.exe is located in WebKitBuild/Release/bin directory.

    Your can also build project browser in Qt source directory(say %QTSRC%/demos):

    cd %QTSRC%/demos/browser
    qmake
    nmake

    Building QtCreator-2.8.1 with Qt-4.8.7 and MSVC 2012

    cd %QTCREATORSRC%
    qmake CONFIG+=release qtcreator.pro
    nmake
    namke install INSTALL_ROOT=C:\Qt\qtcreator-2.8.1

    You will encouter following errors:
    c:\users\username\downloads\qt-creator-2.8.1-src\src\libs\utils\consoleprocess
    _p.h(49) : fatal error C1083: Cannot open include file: 'private\qwineventnotifi
    er_p.h': No such file or directory
    winutils.cpp
    Generating Code...
    NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 11.0\VC\BI
    N\cl.EXE"' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 11.0\VC\BI
    N\nmake.exe"' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: 'cd' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: 'cd' : return code '0x2'
    Stop.
    NMAKE : fatal error U1077: 'cd' : return code '0x2'
    Stop.

    The reason is that some headers haven't been installed, you should copy headers in directory
    C:\Users\username\Downloads\qt-everywhere-opensource-src-4.8.7\src\corelib\kernel
    to
    C:\Qt\4.8.7\include\QtCore\private

    then, run nmake to continue.

    Enjoy Qt built by yourself!

    References

    http://www.linuxfromscratch.org/blfs/view/svn/x/qt4.html
    http://trac.webkit.org/wiki/QtWebKit
    http://trac.webkit.org/wiki/BuildingQtOnWindows


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    You should rather create a wiki article with your guide, it will be easier to find there



  • @SGaist
    I'm a newbie to this forum. Would you please give me some instructions on how to create a wiki article? Thank you!


  • Lifetime Qt Champion

    The wiki is located here and you should have everything explained there