QT 静态编译(包含webkit)

来源:互联网 发布:网易上海交易中心数据 编辑:程序博客网 时间:2024/04/27 08:01

参考了这篇文章(http://wangjie.rocks/2015/12/28/compile-qt/)之后自己也编译不下几十次,才得已成功。特记下步骤。

需要用到的工具及源码(选择相应的64位或32位版):Cygwin、ActivePerl、Python、ICU源码、openssl源码、Ruby、winflexbison、sqlite-amalgamation

如果以上工具或源码网站打不开请到这个镜像站点下载:http://www.mirrorservice.org/

安装好上面所需要的工具,除ICU与openssl需要编译以外。

编译前提条件必须安装visual studio 2013或2015,本文是用Visual studio 进行静态编译

一、编译icu

准备工作:安装cygwin,至少选择安装以下几个工具:make、dos2unix、binutils

编译步骤:

1、将icu源码解压,

2、进入VS2013命令提示:Visual Studio Tools-》VS2013 x64 本机工具命令提示

3、设置环境变量:set PATH=%PATH%;E:\cygwin64\bin

4、进入icu源码所在目录下的source目录

4、执行命令:

dos2unix *
dos2unix -f configure

5、编译source目录下的runConfigureICU文件将Cygwin/MSVC部分的相关编译选项MD改为MT

6、执行命令:(可以用这个命令查看相关的编译选项:bash runConfigureICU --help)

bash runConfigureICU –-enable-debug -–disable-release Cygwin/MSVC -prefix=/cygdrive/F/3rd/icu-lib –enable-static –disable-shared

说明:

-prefix: 设置安装目录,注意,以 /cygdrive 开头
–enable-debug –disable-release:编Debug版本,什么都不加,默认为release
–enable-static –disable-shared:静态编译 lib
–disable-static –enable-shared:动态编译 dll

实际上要编译4次,分别对应不同的选项进行分别编译才行,我就是因为没有次四种组合分别编译导致始终在编译QT过程中失败。

7、静态编译,执行命令 E:\cygwin64\bin\make.exe ,注意用 cygwin64的make

编译完成后,安装icu,执行命令 E:\cygwin64\bin\make.exe install
命令执行完毕后,icu的库文件就会复制到之前 -prefix 参数指定的目录中
清理临时文件,执行命令 E:\cygwin64\bin\make.exe clean

切记切记,四种编译选项,编译四次

1、–-enable-debug -–disable-release –enable-static –disable-shared

2、–-enable-debug -–disable-release –disable-static –enable-shared

3、–-disable-debug -–enable-release –enable-static –disable-shared

4、–-disable-debug -–enable-release –disable-static –enable-shared

如果选项出错请请通过:bash runConfigureICU --help 查看编译选项用法,也许不同版本选项有所不一样


二、编译openssl

下载地址:https://www.openssl.org/  (选择相应的版本进行下载)

进入VS2013命令提示:Visual Studio Tools-》VS2013 x64 本机工具命令提示,进入源码根目录

配置openssl,执行命令 perl Configure VC-WIN32 –prefix=F:\openssl
可能通过命令perl Configure  --help 查看帮助,或者查看readme文件等参考上面的编译方法,可能每个版本的编译方法不一致,一定要看说明或安装文档
–prefix 命令为openssl编译完成后的安装路径
VC-WIN32 为32位,VC-WIN64A 为64位


生成makefile,执行命令 ms\do_ms.bat
静态编译,执行命令 nmake -f ms\nt.mak
或者动态编译,执行命令 nmake -f ms\ntdll.mak


要修改 MT 或 MD 编译选项,可以在 .mak 文件中修改
编译完成后,安装openssl,执行命令 nmake -f ms\nt.mak install


命令执行完毕后,openssl的库文件就会复制到之前 –prefix 参数指定的目录中
清理临时文件,执行命令 nmake -f ms\nt.mak clean


三、编译QT

修改QT源码目录下的:\qtbase\mkspecs\common\msvc-desktop.conf 文件将MD选项改为MT选项

QMAKE_CFLAGS_RELEASE    = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG      = -Zi -MTd


进入VS2013命令提示:Visual Studio Tools-》VS2013 x64 本机工具命令提示,进入QT源码根目录:

执行命令:

SET _ROOT=F:\QT\qt-opensource-src
SET PATH=E:\jom;%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%;E:\icu\bin;E:\icu\lib;E:\openssl\bin;E:\Python\Python35;C:\Perl64\bin;E:\win_flex_bison-latest
set LIB=%LIB%;E:\icu\lib;E:\openssl\lib
set INCLUDE=%INCLUDE%;E:\icu\include;E:\openssl\include
SET _ROOT=

configure -prefix "E:\Qt\qt_5.7.1_release_2013_static_64" -confirm-license -debug-and-release -opensource -platform win32-msvc2013 -static -static-runtime -mp -icu -openssl-linked OPENSSL_LIBS="-lssleay32 -llibeay32 -lgdi32" -no-qml-debug -no-angle -nomake tests -nomake examples -opengl desktop -qt-sql-sqlite -qt-sql-odbc -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg  -qt-freetype

注意相关参数与实际环境一致,具体可以看源码的相关文档或通过--help查看参数
如果下载了jom则用jom可以加快编译速度 jom /J 4 编译(参数4代表4个CPU核心) jom install 安装
如果没有jom则:nmake && nmake install


四、编译webkit
进入VS2013命令提示:Visual Studio Tools-》VS2013 x64 本机工具命令提示,进入webkit源码根目录:

设置环境变量:
SET _ROOT=F:\QT\qt-opensource-src
set SQLITE3SRCDIR=E:\sqlite-dll-win64-x64-3160200
SET PATH=E:\jom;%_ROOT%\qtbase\bin;%_ROOT%\gnuwin32\bin;%PATH%;E:\icu\bin;E:\icu\lib;E:\openssl\bin;E:\Python\Python35;C:\Perl64\bin;E:\win_flex_bison-latest;E:\Ruby23-x64\bin;E:\Qt\qt_5.7.1_release_2013_static_64\bin;E:\curl
set LIB=%LIB%;E:\icu\lib;E:\openssl\lib;E:\Qt\qt_5.7.1_release_2013_static_64\lib
set INCLUDE=%INCLUDE%;E:\icu\include;E:\openssl\include;E:\Qt\qt_5.7.1_release_2013_static_64\include
SET _ROOT=


perl Tools\Scripts\build-webkit --qt  

可以用perl Tools\Scripts\build-webkit --help 查看编译选项









0 0