您的位置:首页 > 编程语言 > Qt开发

[转]在Windows XP下用GCC 4.3.2编译Qt 4.4.3实战

2009-03-04 12:59 337 查看
1.下载GCC 4.3.2和工具包的编译版,在这里:http://www.tdragon.net/recentgcc/ 点“TDM/MinGW Installer 1.808.3”下载,并且安装好;

2.下载Qt 4.4.3。去这里下载:ftp://ftp.trolltech.com/qt/source/qt-win-opensource-4.4.3-mingw.exe 完成后安装。注意选了MinGW编译器位置之后安装程序会报错,不用管它,确定安装即可;

3.在环境变量的PATH中增加你的MinGW"bin和Qt"4.4.3"bin的详细位置;

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 <security.h>

请在这两行中间加上一行:#include <subauth.h>,使其像这样:

#define SECURITY_WIN32

#include <subauth.h>

#include <security.h>

(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个小时时间(我的电脑CPU是Intel Core Duo T7500的,内存是2G),大概需要4G空间。编译完成后,请输入“mingw32-make clean”清除中间文件,这样可以使占用空间减少到1.95G。

6.好了。请享用GCC 4.3.2和Qt 4.4.3带给你的快乐吧。

---

转载自:

shiyutang
http://www.shiyutang.com/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: