首页 > 代码库 > Qt静态编译总结
Qt静态编译总结
一、什么是qt
Qt是著名的跨平台C++界面库,甚至可以运行在嵌入式设备上(基于framebuffer),拥有自己的集成开发环境Qt Creator。在linux上的两大桌面环境gnome和kde,前者是基于GTK+(主要用C开发),而后者就是基于Qt(主要用C++开发)。
二、安装qt4.3.5和编译动态版exe
* 安装最新的qt开源版,但因为现在的qt比较臃肿,所以我选择了比较旧的4.3.5版
下载地址在:http://download.qt-project.org/archive/qt/4.3/
* mingw我选择了旧版本的mingw:devcpp-4.9.9.2_setup.exe(因为新版本会编译失败,不同版本qt可能需要用不同版本的mingw)
下载地址在:http://sourceforge.net/projects/dev-cpp/files/
如果已经安装了最新的mingw,需要把同驱动盘根目录下的mingw目录改名,否则会干扰旧版本mingw导致编译失败。
* 安装qt4.3.5的时候,会提示指定mingw路径(最新版本的qt会自带mingw,不需要这一步),我选择了devcpp的安装目录,例如D:\Dev-Cpp
* qt自带一个命令行工具叫qtvars.bat,用于设置环境变量,不过有时候有些环境变量没有屏蔽,会导致编译失败,需要新建另一个bat屏蔽某些环境变量(也可以直接添加至qtvars.bat),例如:
@echo off
@set include=
@set lib=
@set path=D:\Dev-Cpp\bin;C:\WINDOWS;C:\WINDOWS\system32;C:\Windows\SysWOW64
@cmd
* 启动qtvars.bat,切换到需要编译的工程目录下(例如安装目录下demos和examples里的示例工程),执行qmake和make clean all即可编译动态版的可执行文件。
三、静态编译qt源代码
开源版的qt在安装的时候既安装了必要的动态链接库和头文件,也安装了相应的源代码。在自带配置好的命令行执行configure和make即可编译静态库(大概需要半小时)
> configure -static -release -no-exceptions
> mingw32-make
需要注意的是默认编译demos和examples下的工程,这些是很浪费时间的,所以在编译之前记得修改根目录下的projects.pro文件,把相关的几行注释掉
isEqual(PROJECT, tools) {
# !cross_compile:SUBDIRS += tools
# else:SUBDIRS += tools/qtestlib
} else:isEqual(PROJECT, examples) {
# SUBDIRS += examples
} else:isEqual(PROJECT, demos) {
# SUBDIRS += demos
如果要编译这些示例工程,只要用cd切换到某个目录下重新执行qmake和make即可编译其静态版可执行文件。
四、静态链接qt插件库
如果用到qt的jpg图片插件,需要静态链接插件的静态库文件
在cpp文件中添加以下行:
#include <QtPlugin>
Q_IMPORT_PLUGIN(qjpeg)
在pro文件中添加以下行(需要修改为实际路径):
LIBS += D:/Qt/4.3.5/plugins/imageformats/libqjpeg.a
其他qt插件的做法类似。
本文出自 “weimingtom的以心伝心” 博客,请务必保留此出处http://weimingtom.blog.51cto.com/5787478/1546309
Qt静态编译总结