本博文参考 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 -ZiQMAKE_CFLAGS_DEBUG = -Zi -MTd这样做的目的是静态链接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