posts - 54, comments - 32, trackbacks - 0, articles - 0

QT_VS2005_CE6.0_开发环境架设

Posted on 2019-03-08 14:30 宋鹏 阅读(620) 评论(0)  编辑 收藏 引用 所属分类: Qt

《QT_VS2005_CE6.0_开发环境架设》
1、基础环境:
操作系统:Windows XP
编译器:(1)VS2005 VC环境 (2)VS2005 SP1
(SP1 必须有,以提供CE平台的支持,没有的话,Arm Emulator的程序编译不过,模拟器也报错“EmulatorStub.exe严重错误”)
QT版本:qt-everywhere-opensource-src-4.8.6.zip
CE SDK:ARM Emulator

2、安装步骤:
(1)把QT源码解压到E:\QT\4.8.6\CE6.0\Emulator
Tim:个人推荐根目录,不带任何下划线、空格等幺蛾子,防止出错。。
Tim:绝对不能带下划线
公司电脑上的目录,起名带个下划线"4.8.6_ArmEmulator",结果VS2005创建工程失败,说缺少平台支持。。
Tim:也最好位于C盘,我把家里电脑的编译版本,放到公司电脑的C盘,创建项目成功,原来的公司版本在E盘,会失败。。不知道是不是错觉。。
(2)进入“Visual Studio 2005 命令提示”
位置是“开始菜单->所有程序->Microsoft Visual Studio 2005->Visual Studio Tools->Visual Studio 2005 命令提示”。。
然后切换到编译目录:E:\QT\4.8.6\CE6.0\Emulator
(3)执行以下命令:
configure -platform win32-msvc2005 -xplatform wince60standard-armv4i-msvc2005
①如果想节省时间,部分编译:
[-debug-and-release] 编译和链接两个版本的Qt
[-nomake examples]
[-nomake demos]
[-nomake docs]
[-no-multimedia]
[-no-phonon]
[-no-phonon-backend] 
[-no-media-backend]
[-no-audio-backend] 
[-no-openssl]
[-no-gtkstyle]
[-no-svg]
[-no-webkit]  是否编译Web相关的一些QT子库,加上这个可以省不少编译时间,就看你是否准备用这些库了。
[-no-javascript-jit] 
[-no-script]
[-no-scripttools] 
[-no-sql-sqlite]
[-no-declarative]
[-no-declarative-debug]
Tim:以上可选项均未试验。。
Tim:
又抄来一个编译WIN32 VS2005设置的:
configure -fast -platform win32-msvc2005  -nomake examples -nomake docs -nomake demos -no-webkit -no-phonon -no-phonon-backend -no-multimedia
Tim:
4.8.6版的,不管怎么编译,都会出错。。
①第一个错误,修改如下:
qclipboard_win.cpp 第306行:
把出错的CheckRemoteDebuggerPresent,通过版本判断的方式,不编译进来。。
#if defined(_MSC_VER) && _MSC_VER <= 1400
    return false;
#else
........................
    CheckRemoteDebuggerPresent(processHandle, &debugged);
#endif
②第二个错误:
继续 nmake 遇到第二个错误
     platform\DefaultLocalizationStrategy.cpp(327) : error C2001: newline in constant
     platform\DefaultLocalizationStrategy.cpp(327) : fatal error C1057: unexpected end of file in macro expansion
     这个错误的原因是因为代码里面的非英文的引号造成的。
    原始的错误代码如下:
     return WEB_UI_STRING("Look Up “<selection>”", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));
     大家注意 <selection> 单词前后的引号。就是它造成编译报错。修改成下面的代码
    return WEB_UI_STRING("Look Up \"<selection>\"", "Look Up context menu item with selected word").replace("<selection>", truncatedStringForLookupMenuItem(selectedString));
Tim:也就是将selection两侧的中文引号那里改成上文的样子,。。奇怪老外也用这种引号么。。
(4)configure之后设置环境变量:
①使用Arm Emulator:
set INCLUDE=C:/Program Files/Microsoft Visual Studio 8/VC/ce/include;C:\Program Files\Windows CE Tools\wce600\ARM_Emulator\Include\Armv4i
set LIB=C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/armv4i;C:/Program Files/Windows CE Tools/wce600/ARM_Emulator/Lib/armv4i
set PATH=C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_arm;%PATH%
②如果使用S2416的SDK:
set INCLUDE=C:/Program Files/Microsoft Visual Studio 8/VC/ce/include;C:\Program Files\Windows CE Tools\wce600\SBC2416\Include\Armv4i
set LIB=C:/Program Files/Microsoft Visual Studio 8/VC/ce/lib/armv4i;C:/Program Files/Windows CE Tools/wce600/SBC2416/Lib/armv4i
set PATH=C:/Program Files/Microsoft Visual Studio 8/VC/ce/bin/x86_arm;%PATH%
执行:
nmake
Tim:我下载的源码4.8.6在configure之后,出现让直行:setcepaths.bat wince600standard-armv4i-msvc2005 && nmake的提示,我估计不用设置上述环境变量,也有可能可以成功编译,但不冒那个险,直接按照文章推荐的步骤来。。
Tim:我运行setcepaths.bat,结果没有那个SDK只有wincewm60standard-armv4i-msvc2005,而且那个BAT里面,只是运行了check sdk的动作。。所以结论是按照推荐文章指定SDK的路径,nmake应该就可以。。
Tim:用作者的方案,Nmake编译成功。。
(5)安装qt-vs-addin:
安装“qt-vs-addin-1.1.10.exe”。。
Tim:“qt-vs-addin-1.2.0-opensource.exe ,就开始不支持VS2005。。”无语。。
(6)修改SDK的名称:
编辑" C:\QT\CE6.0\4.8.6\mkspecs\wince60standard-armv4i-msvc2005\qmake.conf "。。
将里面的
CE_SDK  = STANDARDSDK_600
变更为
CE_SDK  = ARM_Emulator
Tim:因为原始编译的SDK环境,它名称叫做"wince600standard-armv4i-msvc2005",Arm Emulator的库跟这个环境也是一样的,但是名称不一样,Qt插件会报错。。
(7)包含环境变量:
①Arm_Emulator的话:
在VS2005 -> Tool -> Options -> VC++ Directories -> Arm_Emulator里面:
Include增加:" C:\QT\4.8.6\CE6.0\Emulator\include "。。
Library增加:" C:\QT\4.8.6\CE6.0\Emulator\lib " 。。
Tim:我一开始就没包含,结果编译别人的代码,报错没有" QtSql "。。
②WIN32编译的话:
在VS2005 -> Tool -> Options -> VC++ Directories -> Win32里面:
Include增加:" C:\QT\4.8.6\WIN32\include "。。
Library增加:" C:\QT\4.8.6\WIN32\lib " 。。
Tim:
为了让Visual Assist更好的识别QT的函数名、类名,最好在VS2005里面多添加一些目录如:
C:\QT\4.8.6\WIN32\src
C:\QT\4.8.6\WIN32\include\Qt
C:\QT\4.8.6\WIN32\include\QtCore
C:\QT\4.8.6\WIN32\include\QtGui
(8)开启Arm Emulator:
Tool -> Connect to Device -> Arm Emulator Device。。
(9)新建一个QT工程,编译、运行:
开启VS2005 -> File -> New -> Project -> Qt4 Projects -> Qt Window CE Application -> 都选默认设置,然后编译、部署、执行,最后成功在Arm Emulator里面弹出个对话框来(OK)。。
Tim:看到部署的时候,用了VS2005的库(msvcr80d.dll),还有QT的两三个库(QtCored4.dll、QtGuid4.dll什么的)。。
(10)编辑*.ui文件,设计界面:
安装" qt-creator-opensource-windows-x86-3.3.0.exe ",才能打开" *.ui "文件,从而变更界面。。
Tim:看了下.ui文件其实是一个xml结构的文档。。
Tim:
" qt-creator-opensource-windows-x86-3.0.0.exe " Based on Qt5.2.0 ( MSVC2010,32 bit )。。
" qt-creator-opensource-windows-x86-3.3.0.exe " Based on Qt5.4.0 ( MSVC2010,32 bit )。。。。








只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理