zoukankan      html  css  js  c++  java
  • Qt5 FOR WINCE7, Visual Studio 2008环境的搭建

    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       考虑到有多个平台的情况,我们QTshadow builds 方式来编译QT,我们使用VS的编译器来编译QT的代码,所以需要已经装好了VS2008的开发环境,VS2008SP1,MSDN,VS助手的安装过程不再说明。

    2       建立一个QT根目录,如D:ProgramQt5.1.0,(注:创建的目录最好是不包含空格和中文)

    3       QT根目录下创建一个qt源文件目录,如     D:ProgramQtqt5.1.0qt-src,用来存放解压包中的文件

    4       将下载的qt-everywhere-opensource-src-5.1.0.zip解压到D:ProgramQtqt5.1.0qt-src

    5       D:ProgramQtqt5.1.0目录下创建shadow builds编译目录(根据平台的种类可以创建多个),如D:ProgramQtqt 5.1.0ce7-tcc8925

    6       配置编译选项

    6.1     打开D:ProgramQtqt5.1.0qt-srcqtbasemkspecs,复制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 FilesMicrosoft Visual Studio 9.0VCvcvarsall.bat,效果是一样的。

    6.4 在命令提示符下输入: PATH D:ProgramQtqt5.1.0ce7-tcc8925in;%PATH%进入shadow builds目录

    在命令提示符下输入:cd D:ProgramQtqt5.1.0ce7-tcc8925


     

    6.5根据需要配置QT编译,如:

    DLL版本

    D:ProgramQtqt5.1.0qt-srcconfigure  -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:programqtqt5.1.0qt-srcqtbaseincludeqtcore../../src/corelib/global/qglo

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

    such file or directory

    解决办法:

    D:ProgramQtqt5.1.0ce7-tcc8925qtbasesrccorelibglobal 下qconfig.h  复制到D:ProgramQtqt5.1.0qt-srcqtbaseincludeQtCore

    现象

    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 ToolsSDKs cc8925IncludeArmv4iKHR找到khrplatform.h第37行增加下列定义:

    typedef __int64                 khronos_int64_t;

    typedef unsigned __int64        khronos_uint64_t;

    仍然报错,于是改成

    在D:ProgramQtqt5.1.0qt-srcqtbasesrcguiopenglqopengles2ext.h 403行增加定义

    typedef __int64       khronos_int64_t;

    typedef unsigned __int64        khronos_uint64_t;

    问题

    D:ProgramQtqt5.1.0qt-srcqtbasesrcpluginsplatformswindowsqwindowswindow

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

    sorShape' to 'QWindowsWindowCursor'

    解决办法

    在D:ProgramQtqt5.1.0qt-srcqtbasesrcpluginsplatformswindowsqwindowswindow.cpp中第1773行增加#ifndef QT_NO_CURSOR,在1783增加#endif

    问题

    D:ProgramQtqt5.1.0qt-srcqtbasesrcpluginsplatformswindowsqwindowswindow

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

    解决办法

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

    问题

    D:ProgramQtqt5.1.0qt-srcqtsvgsrcsvgqsvgtinydocument.cpp(58) : fatal erro

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

    解决办法

    D:ProgramQtqt5.1.0qt-srcqtsvgsrcsvgsvg.pro,51行改成INCLUDEPATH += D:ProgramQtqt5.1.0qt-srcqtbaseincludeQtZlib

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

    问题

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

    解决办法

    安装并设置环境变量

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

    假设安装路径为D:ProgramPython33,输入命令:PATH  D:ProgramPython33 ;%PATH%

    问题

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

    解决办法

    D:ProgramQtqt5.1.0qt-srcqtquickcontrolsqtquickcontrols.pro修改为

    load(qt_parts)

    requires(contains(QT_CONFIG, accessibility))

    问题

    D:ProgramQtqt5.1.0qt-srcqtmultimediasrcmultimediaaudioqaudiodeviceinfo_

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

    解决办法

    不编译qtmultimedia

    D:ProgramQtqt5.1.0qt-srcqtmultimediaqtmultimedia.pro 添加requires(contains(QT_CONFIG, accessibility)),跳过该模块

    问题

    d:programqtqt5.1.0qt-srcqtsensorssrcimportssensorsqmlproximitysensor.h(

    73) : error C2059: syntax error : ')'

    解决办法

    D:ProgramQtqt5.1.0qt-srcqtsensorsqtsensors.pro添加requires(contains(QT_CONFIG, accessibility)),跳过

    当前Qt for wince支持的模块有

    -qtbase
    - qtjsbackend
    - qtdeclarative
    - qtscript
    - qtquick1
    - qtsvg
    - qtgraphicaleffects
    - qtimageformats
    - qtxmlpatterns

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

    问题

    d:programqtqt5.1.0qt-srcqtimageformatssrc3rdpartylibmnglibmng_types.h(1

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

    ectory

    解决办法

    D:ProgramQtqt5.1.0qt-srcqtimageformatssrc3rdpartyzlib_dependency.pri,6行改成INCLUDEPATH += D:ProgramQtqt5.1.0qt-srcqtbaseincludeQtZlib

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

    问题

    D:ProgramQtqt5.1.0qt-srcqtimageformatssrc3rdpartylibtifflibtiff if_zip

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

    directory

    解决办法

    D:ProgramQtqt5.1.0qt-srcqtimageformatssrc3rdpartylibmng.pri,26行添加INCLUDEPATH += D:ProgramQtqt5.1.0qt-srcqtbaseincludeQtZlib

    问题

    D:ProgramQtqt5.1.0qt-srcqtquick1srcpluginsqmltoolingqmldbg_inspectored

    itorzoomtool.cpp(252) : error C2039: 'setCursor' : is not a member of 'QDeclara

    tiveView'

    解决办法

    D:ProgramQtqt5.1.0qt-srcqtquick1srcpluginsqmltoolingqmldbg_inspectoreditorzoomtool.cpp第252,254行增加

    #ifndef QT_NO_CURSOR,#endif

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

    问题

    'D:ProgramQtqt5.1.0ce7-tcc8925qtbaseqtbaseinlrelease.exe' 不是内部或外

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

    解决办法

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







  • 相关阅读:
    codeforces707B:Bakery
    codeforces707A:Brain's Photos
    BZOJ1084 [SCOI2005]最大子矩阵
    BZOJ1264 [AHOI2006]基因匹配Match
    BZOJ2764 [JLOI2011]基因补全
    codevs1257 打砖块
    BZOJ1079 [SCOI2008]着色方案
    BZOJ1026 [SCOI2009]windy数
    菜鸟学自动化测试(一)----selenium IDE
    关于w3school的html5部分output 元素实例代码(点亲自试一试进去)的问题纠正
  • 原文地址:https://www.cnblogs.com/pangblog/p/3279690.html
Copyright © 2011-2022 走看看