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

Qt5 FOR WINCE7, Visual Studio 2008環境的搭建python


Qt5發佈時,試過配置Qt5 for wince的環境,緣由是暫時不支持WINCE。前幾天意外發現官方博客說明已經開始支持WINCE了,祥見sql

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

因而開始用本身的環境體驗一下,下面開始環境的搭建。ide


環境:svg

系統 Windows 7(64)ui

IDEVisual Studio 2008(sp1)spa

SDKtcc8925(ARMV4I)命令行

QT5.1.0版本orm

 

第一步:下載所需文件sqlite

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:\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目錄

在命令提示符下輸入: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,自帶這個程序,或者跳過這個模塊。

相關文章
相關標籤/搜索