Qt5 FOR WINCE7, Visual Studio 2008环境的搭建

  • Post author:
  • Post category:其他





Qt5 FOR WINCE7, Visual Studio 2008环境的搭建





Qt5发布时,试过配置Qt5 for wince的环境,原因是暂时不支持WINCE。前几天意外发现官方博客说明已经开始支持WINCE了,祥见



http://blog.qt.digia.com/blog/2013/07/30/the-state-of-wince-support-in-qt5/


于是开始用自己的环境体验一下,下面开始环境的搭建。


环境:



系统


Windows 7(64)


IDE




Visual Studio 2008(sp1)


SDK




tcc8925(ARMV4I)


QT




5.1.0


版本




第一步:下载所需文件






5.1.0


版本为例,进入地址:


http://qt-project.org/downloads


1.


下载



Qt


源码





http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/5.1/5.1.0/single/qt-everywhere-opensource-src-5.1.0.zip












第二步:解压与安装



1


考虑到有多个平台的情况,我们


QT





shadow builds


方式来编译


QT


,我们使用


VS


的编译器来编译


QT


的代码,所以需要已经装好了


VS2008


的开发环境,


VS2008





SP1,MSDN,VS


助手的安装过程不再说明。



2


建立一个


QT


根目录,如


D:\Program\Qt\5.1.0


,(注:创建的目录最好是不包含空格和中文)



3





QT


根目录下创建一个


qt


源文件目录,如


D:\Program\Qt\qt5.1.0\qt-src


,用来存放解压包中的文件



4


将下载的


qt-everywhere-opensource-src-5.1.0.zip


解压到


D:\Program\Qt\qt

5.1.0

\qt-src






5





D:\Program\Qt\qt5.1.0\


目录下创建


shadow builds


编译目录(根据平台的种类可以创建多个),如


D:\Program\Qt\qt 5.1.0\ce7-tcc8925






6


配置编译选项



6.1


打开


D:\Program\Qt\qt5.1.0\qt-src\qtbase\mkspecs


,复制


wince70embedded-armv4i-msvc2008


,重命名为


wince70tcc8925-armv7-msvc2008



6.2


打开


wince70tcc8925-armv7-msvc2008


中的


qmake.conf


文件,将其中的SDK配置成自己的平台。


CE_SDK                  = tcc8925   # replace with actual SDK name


CE_ARCH                = ARMv4I


QT_CONFIG               -= accessibility





6.3


进入


VS2008


命令行(


Visual Studio 2008 Command Prompt









Visual Studio 2008


的菜单项里,找到


Visualt Studio Tools


里的


Visual Studio 2008


命令提示符(


Visual Studio 2008 Command Prompt


),这样会自动配好相应的环境变量。或者,也可以打开任意一个命令提示符,然后运行



d:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat



,效果是一样的。



6.4


在命令提示符下输入:


PATH D:\Program\Qt\qt5.1.0\ce7-tcc8925\bin;%PATH%


进入


shadow builds


目录



在命令提示符下输入:


cd


D:\Program\Qt\qt5.1.0\ce7-tcc8925






6.5


根据需要配置


QT


编译,如:



DLL


版本






D:\Program\Qt\qt5.1.0\qt-src\configure  -release




-confirm-license






-opensource -platform win32-msvc2008 -xplatform wince70tcc8925-armv4i-msvc2008 -qt-zlib -qt-libpng -qt-libjpeg -no-openssl -no-dbus -plugin-sql-sqlite




-nomake demos -nomake examples



-opengl es2



-vcproj -no-style-windowsmobile  -no-style-windowsvista -no-style-windowsxp -ltcg -D __ARM_ARCH_5TEJ__


-D

QT_NO_CURSOR=1




7.nmake


在经历了无数次报错,不断的修改后,终于编译完成了,看了下居然还有串口模块,

真是好东西,下面贴张生成的目标文件的图。






8.错误信息


现象


d:\program\qt\qt5.1.0\qt-src\qtbase\include\qtcore\../../src/corelib/global/qglo


bal.h(59) : fatal error C1083: Cannot open include file: ‘QtCore/qconfig.h’: No


such file or directory


解决办法:


D:\Program\Qt\qt5.1.0\ce7-tcc8925\qtbase\src\corelib\global 下qconfig.h  复制到D:\Program\Qt\qt5.1.0\qt-src\qtbase\include\QtCore


现象


error C2653: ‘QPlatformOpenGLContext’ : is not a class or namespace name


没有添加OPENGL选项,还是编译了部分和OPENGL相关的代码


解决办法


添加OPENGL配置选项


现象


error C2146: syntax error : missing ‘;’ before identifier ‘GLint64


具体代码


typedef khronos_int64_t GLint64;


可能是MALI_400的驱动版本头文件和QT定义不一致引起的。


解决办法


先是在在SDK中Windows CE Tools\SDKs\tcc8925\Include\Armv4i\KHR找到khrplatform.h第37行增加下列定义:


typedef __int64                 khronos_int64_t;


typedef unsigned __int64        khronos_uint64_t;


仍然报错,于是改成


在D:\Program\Qt\qt5.1.0\qt-src\qtbase\src\gui\opengl\qopengles2ext.h 403行增加定义


typedef __int64       khronos_int64_t;


typedef unsigned __int64        khronos_uint64_t;


问题


D:\Program\Qt\qt5.1.0\qt-src\qtbase\src\plugins\platforms\windows\qwindowswindow


.cpp(1780) : error C2440: ‘<function-style-cast>’ : cannot convert from ‘Qt::Cur


sorShape’ to ‘QWindowsWindowCursor’


解决办法


在D:\Program\Qt\qt5.1.0\qt-src\qtbase\src\plugins\platforms\windows\qwindowswindow.cpp中第1773行增加#ifndef QT_NO_CURSOR,在1783增加#endif


问题


D:\Program\Qt\qt5.1.0\qt-src\qtbase\src\plugins\platforms\windows\qwindowswindow


.cpp(1816) : error C2039: ‘cursor’ : is not a member of ‘QWindowsWindow’


解决办法


1816行增加#ifndef QT_NO_CURSOR,1819行增加#endif


问题


D:\Program\Qt\qt5.1.0\qt-src\qtsvg\src\svg\qsvgtinydocument.cpp(58) : fatal erro


r C1083: Cannot open include file: ‘zlib.h’: No such file or directory


解决办法


D:\Program\Qt\qt5.1.0\qt-src\qtsvg\src\svg\svg.pro,51行改成INCLUDEPATH += D:\Program\Qt\qt5.1.0\qt-src\qtbase\include\QtZlib


如果继续报同样的错,删除目标目录下的临时文件,我这里的操作为清空D:\Program\Qt\qt5.1.0\ce7-tcc8925\qtbase\qtsvg下的所有文件。


问题


‘python’ 不是内部或外部命令,也不是可运行的程序


解决办法


安装并设置环境变量



http://123yun.newhua.com/down/python-3.3.2.zip

假设安装路径为D:\Program\Python33,

输入命令:


PATH

D:\Program\Python33

;%PATH%


问题



Building Qt without accessibility is not supported for qt quick c ontrols.



解决办法


D:\Program\Qt\qt5.1.0\qt-src\qtquickcontrols\qtquickcontrols.pro修改为


load(qt_parts)


requires(contains(QT_CONFIG, accessibility))


问题

D:\Program\Qt\qt5.1.0\qt-src\qtmultimedia\src\multimedia\audio\qaudiodeviceinfo_

win32_p.cpp(417) : error C2065: ‘ICreateDevEnum’ : undeclared identifier

解决办法

不编译qtmultimedia

D:\Program\Qt\qt5.1.0\qt-src\qtmultimedia\qtmultimedia.pro 添加requires(contains(QT_CONFIG, accessibility)),跳过该模块

问题

d:\program\qt\qt5.1.0\qt-src\qtsensors\src\imports\sensors\qmlproximitysensor.h(

73) : error C2059: syntax error : ‘)’

解决办法

D:\Program\Qt\qt5.1.0\qt-src\qtsensors\qtsensors.pro添加requires(contains(QT_CONFIG, accessibility)),跳过

当前Qt for wince支持的模块有

-qtbase

– qtjsbackend

– qtdeclarative

– qtscript

– qtquick1

– qtsvg

– qtgraphicaleffects

– qtimageformats

– qtxmlpatterns

其他模块编译报错,都直接跳过


问题

d:\program\qt\qt5.1.0\qt-src\qtimageformats\src\3rdparty\libmng\libmng_types.h(1

74) : fatal error C1083: Cannot open include file: ‘zlib.h’: No such file or dir

ectory

解决办法


D:\Program\Qt\qt5.1.0\qt-src\qtimageformats\src\3rdparty\zlib_dependency.pri,6行改成INCLUDEPATH += D:\Program\Qt\qt5.1.0\qt-src\qtbase\include\QtZlib


如果继续报同样的错,删除目标目录下的临时文件,我这里的操作为清空D:\Program\Qt\qt5.1.0\ce7-tcc8925\qtbase\qtsvg下的所有文件。


问题


D:\Program\Qt\qt5.1.0\qt-src\qtimageformats\src\3rdparty\libtiff\libtiff\tif_zip


.c(50) : fatal error C1083: Cannot open include file: ‘zlib.h’: No such file or


directory


解决办法


D:\Program\Qt\qt5.1.0\qt-src\qtimageformats\src\3rdparty\libmng.pri,26行添加INCLUDEPATH += D:\Program\Qt\qt5.1.0\qt-src\qtbase\include\QtZlib


问题


D:\Program\Qt\qt5.1.0\qt-src\qtquick1\src\plugins\qmltooling\qmldbg_inspector\ed


itor\zoomtool.cpp(252) : error C2039: ‘setCursor’ : is not a member of ‘QDeclara


tiveView’


解决办法


D:\Program\Qt\qt5.1.0\qt-src\qtquick1\src\plugins\qmltooling\qmldbg_inspector\editor\zoomtool.cpp第252,254行增加


#ifndef QT_NO_CURSOR,#endif


类似的错误都以同样的方式解决。


问题


‘D:\Program\Qt\qt5.1.0\ce7-tcc8925\qtbase\qtbase\bin\lrelease.exe’ 不是内部或外


部命令,也不是可运行的程序


解决办法


下载安装版本的QT5,自带这个程序,或者跳过这个模块。























版权声明:本文为abc19abc91原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。