vs2015 Windows10 Qt5.9.3(包含qtwebengine编译)源码编译(jom编译)心得总结

经过几天的不懈努力,终于把qt5.9.3编译完成(jom编译),现在把自己的编译过程以及注意事项分享出来,希望对大家有帮助。


  • 编译之前的准备

  1. 新的编译环境,最好是最新的干净的windows10环境, 可以搭建个虚拟机环境,也可以重新安装系统环境(本人使用的是新装台式机win10编译环境)。原因:因为整个编译过程会搞乱你的编译环境,整理比较麻烦,不嫌麻烦也可以不需要新的编译环境。

  2. 配置系统环境信息(重点) 。将win10系统的电脑区域中的位置(美国),语言(英语(美国)),时区(太平洋时间(美国和加拿大)),请注意:控制面板--时钟、语言、区域点击区域进入区域界面,脸面tab页面第三个管理下面更改系统区域设置必须修改为英语(美国),更改完事会提示重新启动,不然qtwebengine、qtwebview、qtnetworkauth等无法编译生成。

  3. visual studio 2015安装,注意事项:确保win10 SDK成功安装。此处可借助翻墙工具:蓝灯软件(可以在github官网上下载免费的)。

  4. qt5.9.3源码下载,下载signal下面的(本人使用http://download.qt.io/archive/qt/5.9/5.9.3/single/),下载解压就行。

  5. ruby installer安装(本人使用ruby installer-2.4.1-1-x64.exe版本), 并设置环境变量(此处环境变量应该会自动设置,需要查看下当前的环境变量设置)。

  6. python-2.7.13.amd64.msi, 并设置环境(python编译器安装完成会自动添加环境变量,可以在环境变量里面查看)(暂时不要使用python3)

  7. icu,并设置环境变量(路径,如:d:/icu,本人直接解压到qt包压缩的位置(d:/qt5.9.3/icu))。

  8. jom,并设置环境变量

  9. ninja 安装

  10. ActivePerl安装(本人使用ActivePerl-5.24.1.2402-MSWin32-x64-401627.exe版本), 并设置环境变量(此处环境变量应该会自动设置,需要查看下当前的环境变量设置),用于openssl编译

  11. nasm-2.14rc0-installer-x64.exe,并设置环境变量(..\..\NASM 添加到系统环境变量 Path 中),用于openssl编译; 

  12. 解压openssl源码(本人openssl-1.0.2l.tar.gz)并配置编译Release版本Openssl(编译的是x64的),将生成的openssl库放到qt编译下面(本人放到D:qt5.9.3\openssl)。编译步骤其余博客都有,此处就不写了,注意:不要编译32位的

  13. 注意事项:执行脚本过程中可能会提示源文件格式问题,根据提示修改文件格式。



  • 编译过程

  • 生成个.bat文件,修改以下脚本(放到qt解压的根目录就行)并执行,编译过程比较长,具体看机器性能了(下面CSDN的标号实在去掉不了,头痛,大家复制的时候注意去掉,回头研究
  1. set msvc_path=D:\Program Files\Microsoft Visual Studio 14.0
  2. set make_spec=win32-msvc
    SET CL=/MP
    set src_path=E:\qt\qt5
    set dst_path=%src_path%\qtlibs
    set icu_path=%src_path%\icu
    set openssl_path=%src_path%\openssl
    set PATH=%src_path%\qtbase\bin;%src_path%\qtbase\lib;%src_path%\gnuwin32\bin;%PATH%
    set LIB=%LIB%;%icu_path%\lib;%openssl_path%\lib
    set INCLUDE=%INCLUDE%;%icu_path%\include;%openssl_path%\include
    set PATH=%PATH%;%icu_path%\bin;%openssl_path%\bin;%icu_path%\lib;%openssl_path%\lib


    call "%msvc_path%\VC\vcvarsall.bat" amd64


    call configure -mp -opensource -confirm-license -platform %make_spec% -debug-and-release -force-debug-info -qt-sqlite -qt-pcre -qt-zlib -qt-libpng -qt-libjpeg   -opengl desktop -qt-freetype  -icu -openssl -nomake examples -nomake tests -prefix %dst_path%


    jom(nmake)
    jom install(nmake install)
    jom clean(nmake clean)


    xcopy /y /k "%icu_path%\bin\icudt58.dll" "%dst_path%\bin\" 
    xcopy /y /k "%icu_path%\bin\icuin58.dll" "%dst_path%\bin\" 
    xcopy /y /k "%icu_path%\bin\icuio58.dll" "%dst_path%\bin\" 
    xcopy /y /k "%icu_path%\bin\icutest58.dll" "%dst_path%\bin\" 
    xcopy /y /k "%icu_path%\bin\icutu58.dll" "%dst_path%\bin\" 
    xcopy /y /k "%icu_path%\bin\icuuc58.dll" "%dst_path%\bin\" 
    xcopy /y /k "%icu_path%\lib\icudt.lib" "%dst_path%\lib\" 
    xcopy /y /k "%icu_path%\lib\icuin.lib" "%dst_path%\lib\" 
    xcopy /y /k "%icu_path%\lib\icuio.lib" "%dst_path%\lib\" 
    xcopy /y /k "%icu_path%\lib\icutest.lib" "%dst_path%\lib\" 
    xcopy /y /k "%icu_path%\lib\icutu.lib" "%dst_path%\lib\" 
    xcopy /y /k "%icu_path%\lib\icuuc.lib" "%dst_path%\lib\" 


    xcopy /y /k "%openssl_path%\bin\libeay32.dll" "%dst_path%\bin\" 
    xcopy /y /k "%openssl_path%\bin\ssleay32.dll" "%dst_path%\bin\" 
    xcopy /y /k "%openssl_path%\lib\libeay32.lib" "%dst_path%\lib\" 
    xcopy /y /k "%openssl_path%\lib\ssleay32.lib" "%dst_path%\lib\"






  • 发布(Release)
  1. 其实经过上面的编译过程,大部分库可以编译出来了,具体根据需要可以更改上面批处理(.bat)文件的configure的参数
  2. 为什么要发布呢,因为生成的Qt5Cored.dll(Qt5Core.dll),特别操蛋,因为我们编译出来的QtWebEngineProcess.exe(QtWebEngineProcessed.exe)路径记录问题。
  3. Qt程序打包发布下即可(网上都有),具体是从开始菜单打开 Qt 命令行,输入命令:cd /d D:\hellomw
    然后使用 windeployqt 工具命令:windeployqt hellomw.exe发布即可。


展开阅读全文

没有更多推荐了,返回首页