标签:build

以下是与标签 “build” 相关联的文章

qt-4.8 vs2010 ssl 编译过程

编译动态库

  • 编译 openssl

    • 将 openssl 压缩包解压到 e:\code\lib
    • 环境变量 PATH 中不包含 cygwin,mingw
    • 打开 vs2010 命令行窗口
    cd e:\code\lib\openssl
    perl configure VC-WIN32
    ms\do_ms
    nmake -f ms\ntdll.mak
    
  • 解压源代码 qt-everywhere-opensource-src-4.8.4.tar 到 D:\qt\4.8.4-shared-vs2010 目录
  • 修改编译参数

    • 修改编译选项(D:/qt/4.8.4/mkspecs/win32-msvc2010/qmake.conf):
    QMAKE_CFLAGS            = -nologo -Zm200 -Zc:wchar_t /EHsc
    QMAKE_CFLAGS_RELEASE    = -O2 -Os -MD
    QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -Os -MD -Zi
    
    • 修改链接选项
    QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO /OPT:REF /OPT:ICF
    QMAKE_LFLAGS_RELEASE_WITH_DEBUGINFO = /INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF
    
    • 修改错误代码(编译错误)

    DefaultLocalizationStrategy.cpp:327,将“<selection>”修改成\”<selection>\”

  • 启动 Visual Studio 2005 Command Prompt

    • 进入目录 D:\qt
    • 执行配置命令:
    configure.exe -debug-and-release -fast -confirm-license -opensource -no-qt3support -platform win32-msvc2005 -no-dsp -vcproj -nomake examples -nomake demos -nomake translations -openssl -I E:\code\lib\openssl\inc32 -L E:\code\lib\openssl\out32dll
    configure.exe -debug-and-release -fast -confirm-license -opensource -no-qt3support -platform win32-msvc2010 -no-dsp -vcproj -nomake examples -nomake demos -nomake translations -openssl -I E:\code\lib\openssl\inc32 -L E:\code\lib\openssl\out32dll
    
    • 执行编译命令:
    nmake && nmake install
    
  • 创建 qt\bin\qt.conf
[paths]
Prefix = ..
  • 清理中间文件
    • 备份编译目录为 4.8.4-shared-vs2010.build
    • nmake confclean 注意 目录 4.8.4-shared-vs2010 名称不能修改
    • 利用 beyondcompare,从编译备份目录中恢复所有的 vc80.pdb 文件
    • 清除重复的 DLL 将 qt/lib 目录中的 DLL 全部删除
    • 清除多余的帮助文档首先要运行 qt/bin/assistant.exe,以便更新 qt/doc/pch;然后删除 qt/doc/src 和 qt/doc/html
  • 打包成 7z,大约 200 多 M

静态编译不同点:

  • 编译选项,不依赖 C/C++库

修改 mkspecs/win32-msvc2005/qmake.conf

QMAKE_CFLAGS_RELEASE    = -O2 -Os -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -Os -MT -Zi
QMAKE_CFLAGS_DEBUG  = -Zi -MTd
  • congifure 加上 -static
configure.exe -debug-and-release -fast -confirm-license -opensource -no-qt3support -platform win32-msvc2005 -no-dsp -vcproj -nomake examples -nomake demos -nomake translations -static -openssl -I E:\code\lib\openssl\inc32 -L E:\code\lib\openssl\out32dll
configure.exe -debug-and-release -fast -confirm-license -opensource -no-qt3support -platform win32-msvc2010 -no-dsp -vcproj -nomake examples -nomake demos -nomake translations -static -openssl -I E:\code\lib\openssl\inc32 -L E:\code\lib\openssl\out32dll

QtWebkit-2.3 编译方法

编译 Qt4.8.7

下载代码

git clone git@gitorious.org:webkit/qtwebkit-23.git

安装编译工具

  • cygwin
    • 用到 pkg-config 等工具
  • perl
  • python
  • ruby
  • gnuwin32 路径添加到 PATH
    • Qt 自带 D:\Qt\Qt5.4.1\5.4\Src\gnuwin32\bin

设置环境变量

QTDIR = D:\Qt\4.8.7-shared-vs2010-ssl
SQLITE3SRCDIR = D:\Qt\4.8.7-shared-vs2010-ssl\src\3rdparty\sqlite

修改代码

  • Source/JavasScriptCore/jsc.cpp:528
//TRY
    res = jscmain(argc, argv);
//EXCEPT(res = 3)
//if (Options::logHeapStatisticsAtExit())
//    HeapStatistics::reportSuccess();

启动 VS2010 命令行

  • release debug 可以同时编译
e:
cd E:\code\qt\QtWebkit2.3\QtWebkit-2.3-head_4.8.7_build
perl Tools/Scripts/build-webkit --qt --no-webkit2
perl Tools/Scripts/build-webkit --qt --no-webkit2 --debug

替换 Qt4.8.7 中 QtWebkit

  • 复制编译结果
    • 编译结果在 WebKitBuild 下 Debug 和 Release 目录中
    • 将 dll 文件复制到 Qt/bin 目录下
    • 将 lib, pdb 文件复制到 Qt/lib 目录下
    • 将 imports/QtWebKit 目录复制到 Qt/imports/QtWebKit 目录下
  • 复制头文件
    • 将 Qt/include/QtWebKit 重命名为 QtWebkit2.2
    • 复制 include/QtWebKit 目录到 Qt/include/QtWebKit
    • 对于 include 文件中是间接 include 其它 include 文件的,用被 include 的文件替换
    • 替换 private 目录中的头文件