配置qt + wince6.0 + vs2005环境(转载+原创)

来源:互联网 发布:java开源社区聚类 编辑:程序博客网 时间:2024/06/05 12:46

软件版本说明:

1.操作系统:win7 64位

2.wince上的Qt库版本:qt-everywhere-opensource-src-4.7.3.zip

3.Wince6.0

4.VS2005

5.qt在windows下面的sdk:qt-win-opensource-4.7.3-vs2008.exe

6.Qt在vs上的插件:qt-vs-addin-1.1.10


首先安装vs2005及各个补丁:

安装顺序: (我安装的是英文版)

1.      vs2005英文专业版 (我安装在D:\VS2005目录)

(下载地址:MSDN)

2.      Visual Studio 2005 Service Pack1

(英文版下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=5553)

3.      Visual Studio 2005 Service Pack1 Update for Windows Vista

(英文版下载地址:http://www.microsoft.com/en-US/download/details.aspx?id=7524)

4.      Visual Studio 2005 Service Pack1 ATL Security Update

(英文版下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=25287)

注:如果VS2005安装的是英文版,那么补丁也要装英文版,中文版也是这个道理。


安装wince6.0及补丁:

安装顺序:

1.      Windows Embedded CE 6.0 (序列号:H8RQR-MMKRP-XFRFC-9HKGJ-82R6J)

(下载地址:MSDN)

2.      Windows Embedded CE 6.0Platform Builder Service Pack 1

(下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=4097)

3.      Windows Embedded CE 6.0 R2

(下载地址:MSDN)

4.      Windows Embedded CE 6.0 R3

(下载地址:MSDN)

5.      安装sdk,我用的是东大集成公司提供的Monahans_CE6(我安装在D:\Windows_CE_Tools\wce600\Monahans_CE6)

注:1.从MSDN上下载的wince6.0在安装时,在网上找的序列号都不管用,后来单独下了一个msi安装文件,替换了原安装目录中的msi安装文件才解决注册问题(msi安装文件下载地址:http://download.microsoft.com/download/a/0/9/a09e587c-4ff9-4a58-a854-56fe50b862b2/Windows Embedded CE 6.0.msi)

2.Windows Embedded CE 6.0 R2和R3两个补丁都需要在管理员权限下安装,否则会出现问题

 

安装qt for wince库:qt-everywhere-opensource-src-4.7.3.zip

我第一次下载的是最新版的qt库: qt-everywhere-opensource-src-4.7.4.zip,然后再nmake的阶段总是出现问题:

Creatinglibrary ..\..\lib\QtGuid4.lib and object ..\..\lib\QtGuid4.exp
pngwrite.obj : error LNK2019: unresolved externalsymbol gmtime referenced in function png_convert_from_time_t
..\..\lib\QtGuid4.dll : fatal error LNK1120: 1unresolved externals

在国外论坛上发现一个解决方法:

注释掉qt源代码:/src/3rdparty/libpng/pnglibconf.h中的一句话:

#definePNG_CONVERT_tIME_SUPPORTED

然后重新配置configure即可.

因为据说4.7.4还有其他一些问题,所以我干脆下载了4.7.3来使用(亲测4.7.3版本没有问题).

安装顺序:

1.      解压qt-everywhere-opensource-src-4.7.4.zip到D:盘下qt_wince文件夹

2.      增加环境变量D:\qt_wince\bin

3.      修改D:\qt_wince\mkspecs\wince60standard-armv4i-msvc2005中的qmake.conf文件中的CE_SDK                  =Monahans_CE6  (这里填写设备SDK的安装目录ce600下的目录名字) # replace with actual SDK name

4.      打开vs2005,打开工具->visual studio 2005 command prompt

5.      输入命令:configure -platform win32-msvc2005 -xplatform wince60standard-armv4i-msvc2005.这一步是配置qt库,配置需要几分钟,配置成功会在qt_wince/bin下面生成一些列工具.可以用checksdk.exe –list查看当前装的sdk版本.

6.      输入命令: set INCLUDE=D:\VS2005\VC\ce\include;D:\Windows_CE_Tools\wce600\Monahans_CE6\Include\Armv4i

7.      输入命令: set LIB=D:\VS2005\VC\ce\lib\armv4i;D:\Windows_CE_Tools\wce600\Monahans_CE6\Lib\ARMV4I

8.      输入命令: set PATH=D:\VS2005\VC\ce\bin\x86_arm;%PATH%

9.      输入命令nmake,这一步需要几个小时(跑了一夜,早上起床编译成功)

到这一步qt库以及编译完毕.


安装qt在windows下面的sdk:qt-sdk-win-opensource-2010.05.exe

安装好后,qt默认是mingw编译的,所以需要用nmake重编译

1.打开vs2005,打开工具->visual studio 2005 command prompt

2.进入指定目录下:cd E:\Qt\2010.05\qt

3.编译:configure -debug-and-release -platform win32-msvc2005

4.编译完成后nmake,大概8个小时后就好了吧(我的笔记本时间)

nmake前注意:

以下是一个网友遇到的,我不幸也遇到了- -!,所以先删除那4个文件先

原链接:http://hi.baidu.com/316194566/blog/item/3452c0dce2650db4cd11668e.html

在编译QT代码时,会遇到一些问题,我遇到了两个问题。
然后继续编译N久之后,又出现了问题。。。


编译大概1个小时之后,出现:

01.api\qscriptextensionplugin.h(43): Error: Undefined interface  
02.NMAKE : fatal error U1077: 'C:\Qt\2009.05\qt\bin\moc.exe' : return code '0x1'  
03.Stop.   
04.NMAKE : fatal error U1077: '"d:\Program Files\Microsoft Visual Studio 9.0\VC\BIN   
05.\nmake.exe"' : return code '0x2'   
06.Stop.   
07.NMAKE : fatal error U1077: 'cd' : return code '0x2'  
08.Stop.  
api\qscriptextensionplugin.h(43): Error: Undefined interface
NMAKE : fatal error U1077: 'C:\Qt\2009.05\qt\bin\moc.exe' : return code '0x1'
Stop.
NMAKE : fatal error U1077: '"d:\Program Files\Microsoft Visual Studio 9.0\VC\BIN
\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

以上是出错代码,解决方法是将

qt/src/script/tmp/moc/debug_shared/mocinclude.tmp
qt/src/script/tmp/moc/release_shared/mocinclude.tmp

删除,然后继续编译。

过了很长时间之后,在编译webkit部分的代码时,会发生错误,系统会停止编译
D:\tools\Qt\2010.05\qt\src\3rdparty\webkit\WebCore\tmp\moc\debug_shared\moc_Sock
etStreamHandlePrivate.cpp(97) : error C2065: “QSslError”: 未声明的标识符
D:\tools\Qt\2010.05\qt\src\3rdparty\webkit\WebCore\tmp\moc\debug_shared\moc_Sock
etStreamHandlePrivate.cpp(97) : error C3861: “socketSslErrors”: 找不到标识符
正在生成代码...
NMAKE : fatal error U1077: “"D:\tools\Microsoft Visual Studio 10.0\VC\BIN\cl.EX
E"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “"D:\tools\Microsoft Visual Studio 10.0\VC\BIN\nmake
.exe"”: 返回代码“0x2”
Stop.
NMAKE : fatal error U1077: “cd”: 返回代码“0x2”
Stop.

解决方法是将

qt\src\3rdparty\webkit\WebCore\tmp\moc\debug_shared\mocinclude.tmp 
qt\src\3rdparty\webkit\WebCore\tmp\moc\release_shared\mocinclude.tmp
删除之后可以继续编译(重新执行nmake命令)

编译好后,wince上的qt库就编译成功了,可以打开qt下demo工程编译测试.

QT已经有编译好的VS库,可以直接安装qt-win-opensource-4.7.3-vs2008.exe而不必经历上面这步的过程!!!


安装Qt在vs上的插件:qt-vs-addin-1.1.10

没什么好说的,安装好后在vs上出现qt的插件图标.

注:刚开始安装1.1.9时,在VS2005的QT/QT Options中添加qt_wince目录的qmake编译器时总是提示“There are no Qt/CE platforms defined.”,后来换用1.1.10就没问题了



好了,大功告成,环境配置成功!

接下来可以把qt编译的程序部署到wince板子上进行测试,

将exe文件拷入想要的目录,然后拷贝几个库文件进去:

debug版本: QtCored4.dll,QtGuid4.dll,msvcr80d.dll

release版本:QtCore4.dll,QtGui4.dll,msvcr80.dll

0 0
原创粉丝点击