QT 的其中一种特性就是跨平台开发,因此当我们要用 QT 在不同(操作系统和硬件)平台下开发时,就要用 QT 的源码生 成适合开发平台的 GUI 库。虽然奇趣的官方网站有各类平台的已编译好的 QT 安装包(如 qt-win-opensource-4.4.3-mingw.exe 、 qt-wince- preview-4.4.0-beta1-vs2005.exe 等),但有些平台还是没有提供安装包如嵌入式的,因此掌握 QT 源代码的编译安装方法也是学习 QT 的必修课。 在这里通过实例介绍 QT 的编译方法。
1 “Wince50standard( 操作系统 )_x86( 处理器 )_msvc2005( 开发环境 )” 平台编译
1.1 编译环境 操作系统: Microsoft Windows XP Professional 版本 2002 Service Pack 3
编译器: Microsoft? Visual Studio? 2005
QT 版本: qt-embedded-wince-opensource-src-4.4.3
winceSDK: Standard SDK for Windows CE 5.0
1.2 编译步骤 1. 把 QT 源码(见本文档所在目录的压缩包 qt-embedded-wince-opensource-src-4.4.3.zip )解压到 D 盘,文件夹重命名 为 “wince4.4.3”
2. 进入 “Visual Studio 2005 命令提示 ”
3. 在命令提示行中进入 QT 所在目录路径
4. 其次执行以下命令:
configure -platform win32-msvc2005 -xplatform wince50standard-x86-msvc2005 根据板子或手机配置来选择嵌入式的 xplatform, 这个过程大约需要十分钟左右。执行完毕后,再次在 VS2005 中设置临时的环境变量,编译时要用到,如下:
set INCLUDE=C:/Program Files/Microsoft Visual Studio 8/VC/ce/include;C:/Program Files/Windows CE Tools/wce500/STANDARDSDK_500/Include/x86
set LIB=C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/x86;C:/Program Files/Windows CE Tools/wce500/STANDARDSDK_500/Lib/x86
set PATH=C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_cex86;%PATH%
设置完毕后,执行命令 “nmake” ,这个过程需要一、两个钟头。
最后再次执行 “nmake” 命令执行安装。
以上过程其实可以写成一个批处理命令,新建一个名为 “c.bat” 的批处理文件,文件内容如下:
@echo on
rem
rem This file is compile
rem
echo Setting up a VC2005/QtE only environment...
configure -platform win32-msvc2005 -xplatform wince50standard-x86-msvc2005 -fast -no-webkit
set INCLUDE=C:/Program Files/Microsoft Visual Studio 8/VC/ce/include;C:/Program Files/Windows CE Tools/wce500/STANDARDSDK_500/Include/x86
set LIB=C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/x86;C:/Program Files/Windows CE Tools/wce500/STANDARDSDK_500/Lib/x86
set PATH=C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_cex86;%PATH%
nmake
rem nmake
time /t
:END
解释:上面 ”rem nmake” 是我把命令 nmake 注释掉是因为不想进行安装, ”time /t” 命令是我想知道编译结束时间从而知道 编译花了多少时间。当然你还可以加入命令 ”shutdown –s” ,这样你就可以在下班后交给电脑自动编译完后让其自动关机。
2 “Wince50standard_armv4i_msvc2005” 平台编译
2.1 编译环境
操作系统: Microsoft Windows XP Professional 版本 2002 Service Pack 3
编译器: Microsoft? Visual Studio? 2005
QT 版本: qt-embedded-wince-opensource-src-4.4.3
winceSDK: Standard SDK for Windows CE 5.0
2.2 编译步骤
1. 把 QT 源码(见本文档目录的压缩包 qt-embedded-wince-opensource-src-4.4.3.zip )解压到 D 盘,文件夹重命名 为 “wince4.4.3”
2. 进入 “Visual Studio 2005 命令提示 ”, 进入 QT 所在目录路径3. 其实前面步骤都和前面平台 QT 的编译一样,只是在执行 “configure” 命令和设置临时环境变量略有不同。这里我给出命令集合的批处理文件内容:
@echo on
rem
rem This file is compile
rem
echo Setting up a VC2005/Qt only environment...
configure -platform win32-msvc2005 -xplatform wince50standard-armv4i-msvc2005
set INCLUDE=C:/Program Files/Microsoft Visual Studio 8/VC/ce/include;C:/Program Files/Windows CE Tools/wce500/STANDARDSDK_500/Include/Armv4i
set LIB=C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/armv4i;C:/Program Files/Windows CE Tools/wce500/STANDARDSDK_500/Lib/ARMV4I
set PATH=C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_arm;%PATH%
nmake
time /t
shutdown -s
:END
3 “wincewm60professional-msvc2005” 平台编译
3.1 编译环境
操作系统: Microsoft Windows XP Professional 版本 2002 Service Pack 3
编译器: Microsoft? Visual Studio? 2005
QT 版本: qt-embedded-wince-opensource-src-4.4.3
wmSDK: Windows Mobile 6 Professional SDK
3.2 编译步骤
1. 这里和前面略不同的是要用到 Windows Mobile 6 Professional SDK ,因此先安装这个开发包。
2. 把 QT 源码(见本文档目录的压缩包 qt-embedded-wince-opensource-src-4.4.3.zip )解压到 D 盘,文件夹重命名 为 “wince4.4.3”
3. 进入 “Visual Studio 2005 命令提示 ”, 进入 QT 所在目录路径
4. 命令集合的批处理文件内容如下:
@echo on
rem
rem This file is compile
rem
echo Setting up a VC2005/Qt only environment...
configure -platform win32-msvc2005 -xplatform wincewm60professional-msvc2005 -no-webkit -fast
set INCLUDE=C:/Program Files/Microsoft Visual Studio 8/VC/ce/include;C:/Program Files/Windows Mobile 6 SDK/PocketPC/Include/Armv4i
set LIB=C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/armv4i;C:/Program Files/Windows Mobile 6 SDK/PocketPC/Lib/Armv4i
set PATH=C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_arm;%PATH%
cd src
nmake
time /t
shutdown -s
:END
解释:这里 configure 命令里我加入了 “-no-webkit –fast” 是为了加快编译速度而加进的选项, “-no-webkit” 是不编译 webkit 。多了 “cd src” 命令是进入 “src” 文件夹,只编译此文件夹内的文件,也是为了加快编译速度