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

时间:2023-02-17 14:30:12

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)

IDEVisual Studio 2008(sp1)

SDKtcc8925(ARMV4I)

QT5.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\qt5.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目录

在命令提示符下输入:cdD:\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

在经历了无数次报错,不断的修改后,终于编译完成了,看了下居然还有串口模块,真是好东西,下面贴张生成的目标文件的图。Qt5 FOR WINCE7, Visual Studio 2008环境的搭建

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,自带这个程序,或者跳过这个模块。






Qt5 FOR WINCE7, Visual Studio 2008环境的搭建的更多相关文章

  1. Windows 7 Visual Studio 2008配置OpenGL开发环境

    Windows 7 Visual Studio 2008配置OpenGL开发环境 glut下载地址: http://www.opengl.org/resources/libraries/glut/gl ...

  2. Microsoft Visual Studio 2008 未能正确加载包&OpenCurlyDoubleQuote;Visual Web Developer HTML Source Editor Package” &vert; &OpenCurlyDoubleQuote;Visual Studio HTM Editor Package”

    在安装Microsoft Visual Studio 2008 后,如果Visual Studio 2008的语言版本与系统不一致时,比如:在Windows 7 English System 安装Vi ...

  3. Visual Studio 2008 Package Load Failure&colon;未能正确加载包&OpenCurlyDoubleQuote;Microsoft&period;VisualStudio&period;Xaml”

    在安装好Visual Studio 2008后,启动Visual Studio 2008 发现如下提示: 包加载失败 未能正确加载包“Microsoft.VisualStudio.Xaml”( GUI ...

  4. Visual Studio 2008打开vs2010解决方案的方法

    一个朋友遇到了个问题:用visual studio 2008软件,无法打开一个asp.net网站的sln解决方案.如下图,原因是此解决方案由vs2010生成的,必须由vs2010运行程序打开. 这样一 ...

  5. Visual studio 2008 的语法高亮插件 NShader

    前段时间一直在使用matlab,今天需要使用vs2008,而用惯了matlab,习惯了其中一项选中变量高亮的设置,突然回来使用VS,感到各种不适应,顿时想到了一个词:矫情 呵呵,于是在网上找各种插件, ...

  6. 使用Visual Studio 2008创建你的第一个Windows Mobile程序介绍

    使用Visual Studio 2008创建你的第一个Windows Mobile程序介绍 Windows MobileMobileWindowsMicrosoftWinForm 介绍 Microso ...

  7. 如何用Visual Studio 2008 写汇编程序?

    如何用Visual Studio 2008写汇编程序? 最近在上夏季小学期,在学汇编语言,关于用什么编辑环境一直很纠结.很想找到一个比较好的IDE,但是试了几个像RadASM之类的,发现还不是很满意. ...

  8. 【转】VISUAL STUDIO 2008代码指标为您节省资金

    转自:https://www.geekzone.co.nz/vs2008/4773 Visual Studio 2008 Team Developer和Team Suite版本中提供的许多新功能之一是 ...

  9. 关于在Visual Studio 2008&sol;2010 和Opencv平台下出现LINK &colon; fatal error

    http://blog.sina.com.cn/s/blog_9015f3230101bbef.html 关于在Visual Studio 2008/2010 和Opencv平台下出现LINK : f ...

随机推荐

  1. 30 分钟开发一个简单的 watchOS 2 app &lt&semi;oneVcat&gt&semi;

    Apple Watch 和 watchOS 第一代产品只允许用户在 iPhone 设备上进行计算,然后将结果传输到手表上进行显示.在这个框架下,手表充当的功能在很大程度上只是手机的另一块小一些的显示器 ...

  2. spring&plus;hibernate&plus;struts整合&lpar;2&rpar;

    spring和struts2的整合 1:配置Web.xml文件 <filter> <filter-name>struts2</filter-name> <fi ...

  3. Why Hadoop2

    自从Hadoop2出现之后,其迅速代替了Hadoop1的地位,并丰富了Hadoop的应用场景.假设如今有公司使用Hadoop的话,往往直接採用Hadoop2了. Hadoop2能被如此广泛的使用,肯定 ...

  4. tableview的reloadData应注意

    http://blog.csdn.net/ouyangtianhan/article/details/7835041 http://*.com/questions/160715 ...

  5. Please check logcat output for more details

    Please check logcat output for more details 小米第一次可以安装,后面就不行了,研究发现 手机里面有同名的apk,直接elipse重命名 就可以了. 小米us ...

  6. piano class 13

    1,手放在琴键上,不妨碍另外一只手弹奏即可 2,识别五线谱可以加上几条线,减去几条线,一下子就记住了所有的 3,弹得还是有点快,要慢弹奏,四四拍的理论上比四三拍的还要慢,也要看风格 4,四二拍,强弱, ...

  7. &lbrack;C&plus;&plus;&rsqb;&lbrack;转&rsqb;CPU字节序 网络序 主机序 大端小端

    原帖:http://www.cnblogs.com/darktime/p/3298075.html 不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序最常见的有两种1 ...

  8. 详解KMP算法【转】

    本文转载自:http://www.cnblogs.com/yjiyjige/p/3263858.html KMP算法应该是每一本<数据结构>书都会讲的,算是知名度最高的算法之一了,但很可惜 ...

  9. js设置、修改、获取、删除 cookie

    上面这串省略号对于各种吐槽的声音:因为在百度上看到的关于设置cookie的前几篇文章都是错误的: 里面给出的设置cookie的代码是这样的: function setCookie(name,value ...

  10. html -- contenteditable 属性:指定元素内容是否可编辑

    所有主流浏览器都支持 contenteditable 属性 定义和用法 contenteditable 属性指定元素内容是否可编辑. 注意: 当元素中没有设置 contenteditable 属性时, ...