本博文参考 http://blog.chinaunix.net/uid-20690340-id-3802197.html

  静态库在链接的时候直接写入二进制文件里,这样的好处在于发布的时候无需附带dll文件,这样就不会因为缺少哪个dll运行不起来。

  安装前准备:

1、下载qt源码:qt-everywhere-opensource-src-5.1.0.zip。

2、下载Perl工具。

3、下载Python工具:python-2.7.6.msi。

4、下载Ruby工具:rubyinstaller-2.0.0-p451.exe。

5、安装所下载的工具,全部采用默认安装位置(安装到c盘)。

6、安装完后设置环境变量:C:\Ruby200\bin;C:\Python27;C:\Perl\site\bin;C:\Perl\bin。如果环境变量中已经存在则无需再添加。

7、创建.gitignore文件。运行Visual Studio命令提示(2010) 并将将工作目录切换到qt-everywhere-opensource-src-5.1.0文件夹下,输入命令:echo foo > qtbase\.gitignore

7、1(补充)将目录(qt-everywhere-opensource-src-5.1.0\qtbase\mkspecs\win32-msvc2010)下的qmake.conf文件里的标记改成:

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

QMAKE_LFLAGS_RELEASE = /INCREMENTAL:NO  /NODEFAULTLIB:libc.lib /NODEFAULTLIB:msvcrt.lib
QMAKE_LFLAGS_DEBUG = /DEBUG  /NODEFAULTLIB:libcd.lib /NODEFAULTLIB:msvcrtd.lib

这样做的目的是静态链接c运行库。这样才能达到真正的静态编译

8、配置:执行命令configure -confirm-license -opensource -prefix "D:\Qt\qt5.1.0-msvc2010-static" -debug-and-release -static -platform win32-msvc2010 -c++11 -no-icu -opengl desktop  -qt-zlib -qt-libpng -qt-libjpeg -nomake demos -nomake examples -nomake tests -mp

关于congigure 命令中的各项说明

-opensource -confirm-license qt的使用协议,这个是使用开源协议,并同意

-prefix  "D:\Qt\qt5.1.0-msvc2010-static" 设置qt的安装目录,
-static 设置静态编译,动态编译的话,去掉
-platform win32-msvc2010 设置编译器类型,可根据情况换成win32-msvc2012   win32-g++或者其他 可选择类型在qtbase\mkspecs\目录下了
-debug-and-release编译debug和release版 只编译release设置 -release只编译debug的设置- debug
//-no-c++11 关闭C++11的支持,目前只有vs2010 vs2012支持C++11特性 (vs2010去掉这一项,因为支持)
-no-icu 关闭不是使用icu

-opengl desktop 使用opengl
-nomake demos -nomake examples -nomake tests 不编译示例,测试
 -mp 使用多核优化编译、

目录设置

-prefix <dir>

指定编译结果目录,如果不指定编译结果将会出现在Qtbase下

库编译

-debug

生成debug库

-release

生成release库

-debug-and-release

生成debug及release库

-shared

创建并使用动态Qt库

-static

创建并使用静态Qt库

模块编译

-make <part>

编译(libs,tools,examples...)

-nomake <part>

不编译(libs,tools,examples...)

-skip <module>

构建时排除该模块

-no-widgets

禁止编译widgets模块

-no-sql-<driver>

禁止编译指定SQL驱动

-no-opengl

不支持opengl

-opengl <api>

使能opengl指定API

desktop 桌面OpenGL

es1

es2

-icu

使用ICU库

-no-icu

不是用ICU

Windows支持

-no-vcproj

不生成vc++.vcproj文件

-vcproj

只针对"win32-msvc.net",

-no-openssl

不编译openssl

9、执行nmake,这一步编译需要花费很长时间(双核四线程,2.6GHz,一个半小时),慢慢等待结果出来

10、执行nmake install。这一步将编译生成的结果拷贝到configure配置的目标路径里。

至此静态编译全部结束。

Qt Creator 静态编译设置

工具->选项(option)

QT版本

添加 选择编译安装的qmake 目录

选择构建套件(kit)

名称:QT5.1.0_VS2010_static
QT版本:选5.1.0-rel-static_vc2010

vs2010静态编译qt5.1.0的更多相关文章

  1. 静态编译 Qt5.7.0 (含 openssl 支持)

    关于Qt静态便宜的环境等,请先参见 Win10 + VS2015 下编译 Qt5.6.0 . 首先编译 openssl .我这里用的版本是 openssl 1.0.2j (新的1.1版本的便宜稍有不同 ...

  2. VS2010编译Qt5.4.0静态库

    http://www.kavenblog.com/?p=375 1.Qt的跨平台十分优秀,但是在Windows上是还是会有许多问题,其中之一就是动态链接库的问题,Qt程序的发布必须带一个体积不小的DL ...

  3. VS2015编译Qt5.7.0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  4. linux下编译qt5.6.0静态库——configure配置

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  5. 亲测VS2010纯静态编译QT4.8.0,实现VS2010编译调试Qt程序,QtCreator静态发布程序(图文并茂,非常详细)

    下载源代码,注意一定是源码压缩包如qt-everywhere-opensource-src-4.8.0.zip,不是Qt发布的已编译的不同版本的标准库如qt-win-opensource-4.8.0- ...

  6. linux下编译qt5.6.0静态库——configure配置(超详细,有每一个模块的说明)(乌合之众)

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  7. linux下编译qt5.6.0静态库(使用./configure --help来看看都有哪些参数。超详细,有每一个模块的说明。如果改变了安装的目录,需要到安装目录下的bin目录下创建文件qt.conf)(乌合之众)good

    linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...

  8. Win10 + VS2015 下编译 Qt5.6.0

    近期由于另外一个项目需要用 vs2015 ,于是把 Qt 也升级到了 5.6.0 .由于项目需要兼容 Windows xp ,所以需要自己编译 Qt .这里大致整理一下编译的过程. 安装 Active ...

  9. 在vs2010中编译log4cxx-0.10.0详细方法(从下载、编译、解决错误详细介绍)

    在vs2010中编译log4cxx-0.10.0详细方法(从下载.编译.解决错误详细介绍) http://blog.sina.com.cn/s/blog_a459dcf501013tbn.html

随机推荐

  1. Django之ORM多表增删改操作

    关系表的操作语句: 以上一节中创建的书籍.出版社.作者.作者信息表为例进行: 增: # 一对一 # (1)类属性外键关联,使用外键约束属性直接进行对象关联插入 author_detail_obj=mo ...

  2. Jquery学习2---倒计时

    以下代码是mvc4.0代码,其功能是让页面上的数字3,变2,变1 然后跳转页面 @{ ViewBag.Title = "LoginOut"; } <html> < ...

  3. 安卓网络编程学习(1)——java原生网络编程(1)

    写在前面 马上要进行第二轮冲刺,考虑到自己的APP在第一轮冲刺的效果不尽人意,有很多网络方面的小BUG,这里就系统学习一下网络编程,了解来龙去脉,以便更好的对项目进行优化处理. http协议 http ...

  4. MySQL(3)— 数据管理

    三.MySQL数据管理(DML) 3-1.外键(了解即可) ALTER TABLE `aa表名` ADD CONSTRAINT `约束名` FOREIGN KEY (字段名) REFERENCES ` ...

  5. [PHP]用PHP自己写一个基于zoomeye的api(偷懒必备quq)

    0x01 起因 因为手速慢,漏洞刷不过别人,一个个手补确实慢,所以想自己写一个api,一键抓取zoomeye的20页,然后就可以打批量了 ovo(真是太妙了!) 0x02 动工       1.抓包做 ...

  6. vi和软件安装

    一 vi编辑器简介 vim     全屏幕纯文本编辑器 二  vim使用 1   vi 模式 vi  文件名 命令模式 输入模式 末行模式 命令---->输入  a:追加  i:插入  o:打开 ...

  7. let面试题

    两次输出结构都是2 0 1

  8. 基于Unity实现油画风格的着色器

    // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Cust ...

  9. Java 泛型与集合

    1.List练习,请用泛型的写法来完成. 已知有一个Worker 类如下: public class Worker  { private int age; private String name; p ...

  10. 基于Python豆瓣自动化测试【2】

    -- Pytest基础使用教程[2] 从测试报告说起 承接上一篇中最后的测试结果图,使用过的pytest-html 插件原生态的报告的话.可能会发现 内容样式都有些不同.其实是做了些扩展相关设置所呈现 ...