我使用的是qt-win-opensource-4.4.3-mingw + MinGW-5.1.4 在windows XP系统下安装。
1.首先是下载地址:
qt-win-opensource-4.4.3-mingw
ftp://ftp.trolltech.com/qt/source/qt-win-opensource-4.4.3-mingw.exe
MinGW-5.1.4
http://www.qtcn.org/download/MinGW-5.1.4.exe
也可以到QT中文论坛寻找最新的版本
http://www.qtcn.org/bbs/read.php?tid=1075
2.下载后进行安装
可以先安装MinGW也可以两个同时进行安装。
注意在安装QT时指定MinGW的路径为你安装MinGW时的路径,类似C:\MinGW,如果系统报错不用管它,只要你输入的MinGW路径对就行了。
在安装MinGW时可以选几个组建,我选了MinGW base tools, g++ Compiler, Objective C Compiler 和 MinGW Make,其他的下一步就好了,会需要下载几个包,注意保持联网,安装速度视网速而定。
3.安装后进行环境变量设置
假设刚才安装的QT和Mingw目录分别是:
C:\Qt\4.4.3;
C:\MinGW;
现在打开右键我的电脑,系统属性-高级-环境变量
设置如下环境变量
把C:\MinGW\bin和C:\Qt\4.4.3\bin以及C:\MinGW\mingw32\bin添加到Path;
把C:\MinGW\lib和C:\Qt\4.4.3\lib添加到Lib (如果没有Lib,请创建一个);
把C:\MinGW\include和C:\Qt\4.4.3\include添加到Include (如果没有Include,请创建一个);
确定设置环境变量。此时已经启动新的环境变量。
4.Qt 4.4.3可能有些小bug,编译时会报错,所以需要修改以下一些文件:
(1) Qt\4.4.3\src\corelib\arch\qatomic_windows.h:找到第386-392行,应该是这样的:
extern "C" {
__declspec(dllimport) long __stdcall InterlockedCompareExchange(long *, long, long);
__declspec(dllimport) long __stdcall InterlockedIncrement(long *);
__declspec(dllimport) long __stdcall InterlockedDecrement(long *);
__declspec(dllimport) long __stdcall InterlockedExchange(long *, long);
__declspec(dllimport) long __stdcall InterlockedExchangeAdd(long *, long);
}
请改成这样:
extern "C" {
__declspec(dllimport) long __stdcall InterlockedCompareExchange(volatile long *, long, long);
__declspec(dllimport) long __stdcall InterlockedIncrement(volatile long *);
__declspec(dllimport) long __stdcall InterlockedDecrement(volatile long *);
__declspec(dllimport) long __stdcall InterlockedExchange(volatile long *, long);
__declspec(dllimport) long __stdcall InterlockedExchangeAdd(volatile long *, long);
}
(2) Qt\4.4.3\src\corelib\io\qfsfileengine_win.cpp:找到第67-68行,应该是这样的:
#define SECURITY_WIN32
#include
请在这两行中间加上一行:#include
#define SECURITY_WIN32
#include
#include
(3) Qt\4.4.3\src\gui\inputmethod\qwininputcontext_win.cpp,找到第500行,应该是这样:
bool QWinInputContext::endComposition()
请在这行前面加上一行extern bool qt_sendSpontaneousEvent(QObject *, QEvent *);,使其像这样:
extern bool qt_sendSpontaneousEvent(QObject *, QEvent *);
bool QWinInputContext::endComposition()
5.OK,现在应该可以编译了。点开始菜单中的“Qt by Nokia v4.4.3 (OpenSource)”->“Qt 4.4.3 Command Prompt”,然后输入“configure -debug-and-release -plugin-sql-sqlite -plugin-sql-odbc -qt-libpng -qt-libjpeg”回车进行configure,几分钟之后configure完成,再输入“mingw32-make”回车就可以编译了。编译可能需要3个小时时间,大概需要4G空间。编译完成后,请输入“mingw32-make clean”清除中间文件,这样可以使占用空间减少到1.95G。
6.完成后就可以使用了
做好程序后使用
uic -o form.h form.ui 生成ui的头文件
qmake -project 生成工程文件
qmake 生成makefile文件
mingw32-make 或 make 编译整个工程,生成.exe文件在debug文件夹或release文件夹下。
7.动态编译和静态编译
此种编译方法为动态编译,做出的程序如果要在没有安装MinGW 和 QT的windows电脑上运行,会提示缺少mingwm10.dll, QtCored4.dll, QtGuid4.dll文件,只要到你的电脑中的QT和MinGW安装目录中找到这些文件拷贝到你程序的debug文件夹下就可以了。静态编译出的文件虽然很小,但是这3个dll文件就要几十MB,所以总体来说是很大的。
所以我们可以采用静态编译,静态编译后的Qt就不需要再拷贝这3个dll文件了,首先需要修改位于
QT 编程
|
This entry was posted on 10:17 and is filed under
QT 编程
. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.
0 评论: