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

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

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 未能正确加载包“Visual Web Developer HTML Source Editor Package” | “Visual Studio HTM Editor Package”

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

  3. Visual Studio 2008 Package Load Failure:未能正确加载包“Microsoft.VisualStudio.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/2010 和Opencv平台下出现LINK : fatal error

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

随机推荐

  1. webService接口大全

    中文<->英文双向翻译WEB服务 获得标准数据 Endpoint: http://fy.webxml.com.cn/webservices/EnglishChinese.asmx Disc ...

  2. poj2175

    鸣谢: http://www.cppblog.com/y346491470/articles/152317.html [题意]:一个城市有n座建筑物,每个建筑物里面有一些人,为了在战争爆发时这些人都可 ...

  3. C/C++常用编辑器

    VIM ,www.vim.org/ Emacs, www.gnu.org/software/emacs/ notepad++,www.notepad-plus-plus.org/ Textmate,h ...

  4. linux杂记(十)what is BASH Shell

    first,what is shell?其实只要是碰过计算机的,对于OS(Operation System操作系统,不管是linux.unix.windows)有点概念的人大多都听过这个名词,因为只要 ...

  5. Toast的替代者Snackbar

    在Android design support library中,SnackBar的使用: Part 2 – Welcome Snackbar, Goodbye Toast! BY PARESH MA ...

  6. 1)phpmyadmin导入数据库大小限制修改

    phpmyadmin默认导入数据库文件大小为2M,但一般网站的数据库导出的文件都会超出这个限制,要导入超过2M的数据库文件就需要手动修改php.ini配置文件!最近做项目遇到这个问题,顺便记录下了解决 ...

  7. POJ 1823 Hotel 线段树

    题目链接 线段树的区间合并. 和上一题差不多....第三种操作只需要输出maxx[1]的值就可以. #include <iostream> #include <vector> ...

  8. Java 初始化的个人理解

    先说明一下由来吧,下面是同学的一道笔试题,以前感觉对java初始化也是了解一二的,结果,看到这题泪奔了,不会...上网查,自己添加println,总算是能把自己讲明吧了,不知理解的对不对,先记录下吧, ...

  9. 一起来看看css中的单位

    一起来看看css中的单位 由于一直以来对于css中的百分比单位究竟是相对于谁的比例,这个问题不是很了解,所以就专门找资料看了一下. <div class="container w500 ...

  10. mysql 批量删除分区

    alter table titles drop partition p01; use zabbix; mysql> source drop_par.sql [oracle@oadb mysql] ...