当前位置: 首页 > 工具软件 > QT4i > 使用案例 >

WinCE6+Qt4.86+VS2005的移植

谷梁凌
2023-12-01

最近有一些比较久远的机器,需要做升级处理,由于原来很多功能都没有,现在新产品基本都是基于QT开发的,所以就想把现有的QT程序移植到WINCE6上,于是在网络上搜了一下,发现在“远古”时期(现在使用WINCE平台的人不多了)还真有很多人这样做过。下面就将移植过程做一个记录。

准备

  1. 下载QT4.8.6 windows版本的安装包qt-opensource-windows-x86-vs2008-4.8.6.exe

https://download.qt.io/archive/qt/4.8/4.8.6/

  1. 下载QT4.8.6的源码包qt-everywhere-opensource-src-4.8.6.tar.gz

https://download.qt.io/archive/qt/4.8/4.8.6/

  1. 安装 VS2005安装包 (亦可以基于VS2008开发),即相关补要包。
  2. 下载QT for VS的插件qt-vs-addin-1.1.11-opensource.exe(* 注意:只有这个版本还支持古老的VS2005,VS2008,VS2010 *)

https://download.qt.io/official_releases/vsaddin/

5.安装一个WINCE6 SDK,我这里直接安装的是我们定制SDK,或者学习用,直接用自带的SDK也可以。

配置QT4.8.6源码(基于WINCE6 ARMV4i平台)

进入QT4.8.6的源目录下,配置WINCE6 ARMV4i的环境:
打开配置文件:mkspecs\wince60standard-armv4i-msvc2005\qmake.conf
将其中的SDK名称替换成自己的SDK,比如我们用的是SDK是XXX_CE60_SDK_V21

CE_SDK		= SAIO_CE60_SDK_R21   # replace with actual SDK name
CE_ARCH		= ARMV4I

下面在QT4.8.6源码根目录下输入命令开始配置,注意configure可以看作是一个exe配置小工具,其后跟的是参数,具体不详细说明了,主要是平台相关,以及忽略一些不需要的模块(不会编译,可以加快编译速度)。

D:\Program Files (x86)\Microsoft Visual Studio 8\VC>cd D:\qt-everywhere-opensour
ce-src-4.8.6

D:\qt-everywhere-opensource-src-4.8.6>configure -no-webkit -nomake docs -nomake
demos -nomake examples -platform win32-msvc2005 -xplatform wince60standard-armv4
i-msvc2005
Which edition of Qt do you want to use ?
Type 'c' if you want to use the Commercial Edition.
Type 'o' if you want to use the Open Source Edition.
回车后开始配置Qt,license选择o,之后选择y

配置成功后的部分配置输出信息:

main.cpp
cesdkhandler.cpp
Generating Code...
        link /LIBPATH:"d:\qt-everywhere-opensource-src-4.8.6\src\tools\bootstrap
\release" /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MA
NIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='
6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*
'" /MANIFEST /MANIFESTFILE:"tmp\obj\release_shared\checksdk.intermediate.manifes
t" /OUT:..\..\bin\checksdk.exe @C:\Users\ADMINI~1\AppData\Local\Temp\nmBC6.tmp
        mt.exe -nologo -manifest "tmp\obj\release_shared\checksdk.intermediate.m
anifest" -outputresource:..\..\bin\checksdk.exe;1


Qt is now configured for building. To start the build run:setcepaths.bat wince60
standard-armv4i-msvc2005 && nmake.
To reconfigure, run 'nmake confclean' and configure.

D:\qt-everywhere-opensource-src-4.8.6>

到这里基于wince arm平台的配置就配置好了,下面开始基于这个平台编译。

编译(生成WINCE ARM平台的库)

查看当前可用的SDK:

D:\qt-everywhere-opensource-src-4.8.6>checksdk -list
Available SDKs:
SDK Name: Pocket PC 2003 (ARMV4)
SDK Name: Smartphone 2003 (ARMV4)
SDK Name: Platform Builder (_TGTCPU)
SDK Name: XXX_CE60_SDK_V21 (ARMV4I)  //这里可以看到我们自己的SDK,上面是VS自带的。

D:\qt-everywhere-opensource-src-4.8.6>

在D:\qt-everywhere-opensource-src-4.8.6\bin>目前下修改setcepaths.bat,添加如下自定义SDK信息:

ELSE IF "%1" EQU "**wince60standard-armv4i-msvc2005**" (
checksdk.exe -sdk "**XXX_CE60_SDK_V21 (ARMV4I)**" -script 

tmp_created_script_setup.bat 1>NUL
tmp_created_script_setup.bat
del tmp_created_script_setup.bat
echo Windows 

CE 6 Standard selected, environment is set up
)

添加好后执行此脚本如下:

D:\qt-everywhere-opensource-src-4.8.6\bin> setcepaths.bat wince60standard-armv4i-msvc2005 后面跟的这个即我们在mkspecs里选的那个WINCE ARM平台目录

接下来开始编译:

D:\qt-everywhere-opensource-src-4.8.6>nmake

编译的时长比较久,3小时左右。

编译成功后在当前目录下生成一个lib文件夹,里面是编译好的QT库文件(dll与lib,font):

D:\qt-everywhere-opensource-src-4.8.6\lib

安装QT4.8.6 Windwos版

  1. 直接双击qt-opensource-windows-x86-vs2008-4.8.6.exe运行,下一步式安装即可。
    安装成功后,需要在系统环境变量PATH下面添加如下路径:
D:\Qt\4.8.6\bin
  1. 在系统环境变量里新建一个QT根目录QTDIR,其值即刚安装后的根目录路径:
D:\Qt\4.8.6

安装VS2005的QT插件

这里假使我们已经安装好VS2005环境了。
直接双击qt-vs-addin-1.1.11-opensource.exe安装即可,安装完成后,打开VS会看到菜单栏多了一个QT选项,另外新建工程时,也会多出一个QT的选项。

配置WINCE QT

只需要在系统环境变量PATH下面添加:

D:\qt-everywhere-opensource-src-4.8.6\bin;D:\Qt\4.8.6\bin

另外,将刚花了3小时编译后的根目录也添加到QTDIR中:

D:\Qt\4.8.6;D:\qt-everywhere-opensource-src-4.8.6

最后,打开VS,选择QT—》Qt Option,在弹出的对话框中,即Qt Version页面下,这时看到的是Qt4.8.6的配置,这个是在安装Qt4.8.6 Windows版本时自动添加进来的,我们可以照着把Qt wince的目录指定到这里即可。我们这里添加的目录就是上面编译的源码根目录:

D:\qt-everywhere-opensource-src-4.8.6

同时下方有win32和wince默认指定的版本选择,对应选好取可。

到这里事个开发环境就安装、配置好了,可以写一个hello测试一下了。

 类似资料: