首页 > 代码库 > 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静态编译总结