zoukankan      html  css  js  c++  java
  • 转一篇比较详细的vc编译qt的文

      编译准备  

    下载NOKIA网站上的QT SDK,解压或安装到相关目录。


    下载后安装好的目录结构为(假设安装到D:\QT):
    ├─share
    ├─lib
    ├─bin
    ├─mingw
    └─qt
        ├─translations(QT语言文件目录)
        ├─tools(QT相关工具源码目录)
        ├─src(源代码目录)
        ├─qmake(qmake源代码目录)
        ├─plugins(图形,数据库等插件目录)
        ├─mkspecs(平台配置文件)
        ├─lib(库文件)
        ├─include(头文件)
        ├─examples(示例程序)
        ├─doc(文档)
        ├─demos(演示程序)
        ├─config.tests
        ├─bin(命令行工具)
        └─qtc-debugging-helper

    configure配置工具在qt目录,以下假设QTDIR=D:\QT\SDK\qt,编译前最好清空 lib,demos,examples,docs四个目录,配置完成后在这几个目录下放一个空的Makefile文件,避免make时报错。

      VS2005动态编译  

    1.设置VS2005的环境变量
    2.设置目标平台
    set QMAKESPEC=win32-msvc2005
    3.进入 QTDIR目录运行配置,生成Makefile文件
    configure -platform win32-msvc2005 -release -opensource -shared -fast -qt-sql-sqlite -plugin-sql-sqlite -no-qt3support  -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-webkit -qt-style-windowsxp -qt-style-windowsvista
    4. 运行nmake /I /K(附带/I /K 选项可以避免出现错误时编译自动终止,用于跳过错误继续编译其它文件)

    经过这样编译的Qt库不依赖mingwm10.dll,libgcc_s_dw2-1.dll,但依赖Qt库的Dll文件和微软的CRT运行时库,使用此Qt库编译Windows平台下的程序,发布时需带上用到的Qt链接库Dll文件和微软的CRT运行时库Dll文件。

      VS2005静态编译  

    (VS2008 编译同理,启动相应的命令行,设置相应的目标平台,修改相应的配置文件)
    1.设置VS2005的环境变量
    2.设置目标平台
    set QMAKESPEC=win32-msvc2005
    3.修改mkspecs/win32-msvc2005目录下的配置文件 qmake.conf
    将下面两行:
    QMAKE_CFLAGS_RELEASE    = -O2 -MD
    QMAKE_CFLAGS_DEBUG      = -Zi -MDd
    修改为:
    QMAKE_CFLAGS_RELEASE    = -O2 -MT
    QMAKE_CFLAGS_DEBUG      = -Zi -MTd
    (D是指dynamic,T是指static,d是指debug)
    4.进入QTDIR目录,运行配置,生成 Makefile文件
    set QMAKESPEC=win32-msvc2005
    configure -platform win32-msvc2005 -release -no-exceptions -opensource -static -fast -qt-sql-sqlite -plugin-sql-sqlite -no-qt3support  -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-webkit -qt-style-windowsxp -qt-style-windowsvista
    5.运行运行nmake /I /K

    经过这样编译的Qt库不依赖于任何Dll文件(如微软的CRT运行时库),使用此Qt库编译Windows平台下的程序发布时不需要附带任何额外的 Dll文件。

      MinGW静态编译  

    1.设置MinGW的环境变量
    2.设置目标平台
    set QMAKESPEC=win32-g++
    3.修改 mkspecs/win32-g++目录下的配置文件qmake.conf
    将下面一行:
    QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
    修改为:
    QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
    然后将下面一行:
    QMAKE_LFLAGS_DLL        = -shared
    修改为:
    QMAKE_LFLAGS_DLL        = -static
    4.QTDIR目录,运行配置,生成Makefile文件
    set QMAKESPEC=win32-g++
    configure -platform win32-g++ -release -no-exceptions -opensource -static -fast -qt-sql-sqlite -plugin-sql-sqlite -no-qt3support  -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -no-webkit -qt-style-windowsxp -qt-style-windowsvista
    5.运行运行mingw32-make -i -k(-i -k选项的含义与上面nmake的相同)

    经过这样编译的Qt库,不依赖任何Dll文件(如mingwm10.dll,libgcc_s_dw2-1.dll),使用此Qt库编译的 Windows平台下的程序发布时不需要附带任何额外的Dll文件。

      编译事项说明  

    编译完成后可以删除bin目录中所有不是当前编译日期的文件。

    建议编译前移除examples和demos文件夹的所有文件,避免重编译这两个文件夹,加快编译速度。

    另外,编译命令请根据自己的实际情况配置,上面我的配置是(以VS2005静态编译为例):
    -platform win32-msvc2005 目标平台
    -release 关闭调试信息
    -no-exceptions 除去异常支持
    -opensource 开源版
    -static 创建静态库
    -fast 快速配置,只生成Qt库文件及子目录的Makefile文件,其它的Makefile文件后面再使用qmake生成
    -qt-sql-sqlite SQLite驱动支持
    -plugin-sql-sqlite  SQLite链接插件支持
    -no-qt3support  不编译Qt3兼容库
    -qt-zlib zlib库
    -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg 图形格式插件库
    -no-webkit 不编译webkit,此选项可极大加快编译速度,需要使用WebKit的可以删除此选项
    -qt-style-windowsxp -qt-style-windowsvista 支持XP和Vista主题样式

    注意:使用静态编译的程序通常较大,建议发布前使用UPX压缩,一般可以减少至少50%的大小。
  • 相关阅读:
    springBoot jpa 分页
    springBoot jpa 表单关联查询
    springBoot 登录拦截器
    SpringBoot 封装返回类以及session 添加获取
    SpringBoot 数据库操作 增删改查
    IDEA SpringBoot +thymeleaf配置
    IDEA Spring Boot 项目创建
    php判断手机段登录,以及phpcms手机PC双模板调用
    简单爬虫,查博客浏览量
    [51nod1357]密码锁 暨 GDOI2018d1t2
  • 原文地址:https://www.cnblogs.com/mumuliang/p/2140720.html
Copyright © 2011-2022 走看看