博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vs2010静态编译qt5.1.0
阅读量:5082 次
发布时间:2019-06-13

本文共 2481 字,大约阅读时间需要 8 分钟。

  本博文参考 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

转载于:https://www.cnblogs.com/larkin/p/3649796.html

你可能感兴趣的文章
centos7.5 源码安装gitlab使用mysql数据库
查看>>
那些年我们踩过的linux坑(1)
查看>>
Android学习笔记(五三):服务Service(下)- Remote Service
查看>>
工厂模式
查看>>
Public KEY
查看>>
与像素无关的dp单位与像素单位px之间的转换
查看>>
04.Spring Ioc 容器 - 刷新
查看>>
java8中接口default、static新特性,与抽象类区别
查看>>
ConcurrentHashMap
查看>>
函数节流-歪说js
查看>>
[NOIp 2015]子串
查看>>
windows php环境配置
查看>>
spring中@value注解需要注意
查看>>
Java中的自定义注解
查看>>
【题解】 Test 买水的ACX(套路)
查看>>
使用jackson来进行数组格式的json字符串转换成List。
查看>>
Mysql数据库概述
查看>>
BFC总结
查看>>
设计模式——动态代理前戏——何为静态代理
查看>>
Asp.net(C#) windows 服务{用于实现计划任务,事件监控等}
查看>>