《wince.bat解析》由会员分享,可在线阅读,更多相关《wince.bat解析(6页珍藏版)》请在金锄头文库上搜索。
1、这不是手册,最好的手册就是源代码!这不是手册,最好的手册就是源代码!wince.bat 主要作用是设置环境变量。开始庖丁解牛吧:wince.bat 包含哪些内容包含哪些内容?我们逐行分析:我们逐行分析:_WINCECALLED 第一次运行之后,此变量设置为 1. 以此确保此脚本在当前环境下只能被运行一次。wince -h 除外。COPYCMD 被赋值/y. 避免询问阻塞程序进行。具体参加知识点 1. _HOSTCPUTYPE由系统环境变量 PROCESSOR_ARCHITECTURE 决定此值。 我的机器是 x86 的,相信你的也是。于是 if “%PROCESSOR_ARCHITECTURE
2、%“ = “x86“ set _HOSTCPUTYPE=i386_WINCEROOT此脚本依赖的系统环境变量,若该值为空,直接退出脚本。此变量指明 wince 所在的路径。默认路径安装,所以我的路径是 c:wince500.这需要在脚本运行前赋值。在命令行里输入set _WINCEROOT=c:wince500.更具体的参见如何使用这个脚本?_FLATRELEASEDIR脚本依赖的环境变量,如果为空,则系统在%_WINCEROOT%下创建一个 release 的目录。PREFAST_ROOT指明 prefast.exe 所在的路径,我的路径是c:wince500publiccommonoakb
3、ini386prefastscriptsprefast.exe。prefast.exe 运行位于 scriptspftExecEnv.wsc 脚本。更具体作用不详待解。也许是某些预先加速的技术。IMGNOTALLKMODE设置该变量为 1. 设定某种 image 得处理模式,给后续脚本使用,具体作用留待以后。_WINCEDRIVE从_WINCEROOT 中获得 wince 所在的磁盘盘符,并赋值给变量_WINCEDRIVE._SDKROOT , _SDKDRIVE保存 sdk 目录路径和盘符。默认安装后这里是_SDKROOT=c:wince500sdk; _SDKDRIVE=C:.接下来与此类
4、似的有这些变量得设置:_PUBLICROOT=c:wince500public , _PUBLICDRIVE=c:_PRIVATEROOT=c:wince500private, _PRIVATEDRIVE=c:_PLATFORMROOT=c:wincd500platform, _PLATFORMDRIVE=c:_MAKEENVROOT变量指明了 make 等工具所在的路径。_MAKEENVROOT=c:wince500publiccommonoakmisc_PREWINCEPATH保存原来的系统环境变量 path。后将 path 更改为 path %_PUBLICROOT%commonoakB
5、in%_HOSTCPUTYPE%;%_PRIVATEROOT%bin%_HOSTCPUTYPE%;%_PRIVATEROOT%bat;%_PUBLICROOT%commonoakmisc;%_WINCEROOT%developr%USERNAME%;%_PREWINCEPATH%前述 PREFAST_ROOT 也加入 path %PREFAST_ROOT%scripts;%path%参数的含义:参数的含义:-h 打印帮助信息-I 忽略错误。 即设置_IGNOREERROR=1._TGTCPU第一个参数将被赋值给_TGTCPU 。含义:目标 cpu 类型_TGTPROJ第二个参数将赋值给_TGT
6、PROJ 。含义:项目名_TGTPLAT第三个参数将被赋值给_TGTPLAT.含义:平台类型,bsp 选择。判断 cpu 类型是否正确_TGTOS = CE_TGTCPUFAMILY=ARM_TGTCPUISA=V4I如果项目路径没有指定,设置_PROJECTROOT=c:wince500publicmydesign_WINCEOSVER=500 指明 ce 的版本是 wince5.0_PROJPUBLICROOT c:wince500pbworkspacesmydesignwince500public_DEPTREES 指明依赖关系,保存依赖列表.call %_PROJECTROOT%_TG
7、TPROJ%.bat 设置工程相关的环境变量。必须位于_PROJECTROOT 下。BUILD_DEFAULT=-nmake -i -nmake -cLOCALE=0409 如果没有指明 locale,则默认为 0409. 知识点 2.WINCEDEBUG=retail 指定 debug 目录WINCEMAP=1call %_TARGETPLATROOT%_TGTPLAT%.batexp: 执行 platformsmdk2410smdk2410.bat.这个脚本很简单,事实上只是执行这样的语句:set BSP_NOPCIBUS=1set BSP_NOUSBSER=1call %_WINCERO
8、OT%publiccommonoakmiscetkenv.bat相关目录下没有发现这个脚本。call %_WINCEROOT%privatebatwincepriv.bat %1 %2 %3 %4 %5 %6 %7 %8 %9相关目录下没有发现此脚本。call %_WINCEROOT%developr%USERNAME%setenv.bat %1 %2 %3 %4 %5 %6 %7 %8 %9相关目录下没有发现此脚本。倒是在publiccommonoakmisc下有一个 setenv.bat.call %_PROJECTROOT%postWinCE.bat %1 %2 %3 %4 %5 %6
9、%7 %8 %9相关目录下没有发现此脚本。照名字猜测,应该是用户添加的自定义脚本。call %_WINCEROOT%privatebatPostWinCEpriv.bat %1 %2 %3 %4 %5 %6 %7 %8 %9相关目录下没有发现此脚本。检查完检查完 release 目录后,返回目录后,返回 c:wince500.脚本完成。脚本完成。知识点:知识点:1. 使用 COPYCMD 环境 你可以设置 COPYCMD 环境变量,指定 COPY, MOVE 和 XCOPY 命令是否先给出提示,经确认后再覆盖文件。 若强制要求 COPY、MOVE 和 XCOPY 命令在所有情况下均先给出提示,
10、后进行覆盖,就把 COPYCMD 环境 变量设置成/-Y。若强制要求这些命令在所有情况下不提示就进行覆盖,则把 COPYCMD 环境变量设置成/Y。 在这些命令中键入的/Y 或/-Y 开关,优先于COPYCMD 环境变量的所有默认值和当前值。 2. locale 语言,字符集等环境变量。google it.如何使用这个脚本如何使用这个脚本?example:set _WINCEROOT=c:wince500cd c:wince500publiccommonoakmiscwince armv4i mydesign smdk2410常见的错误和警告和解决办法常见的错误和警告和解决办法问题:由问题:由
11、 wince.bat 并不能产生预期的足够的环境变量?以下是我从在并不能产生预期的足够的环境变量?以下是我从在 blddemo.bat 第一第一行加入行加入 set 命令后,从命令后,从 pb 运行中拷贝出来的实际环境变量。这与用运行中拷贝出来的实际环境变量。这与用 wince.bat 运行后相差运行后相差很多!很多!(省略)我的解释:在 blddemo.bat 执行前,pb 只做了一件事情,就是打开 pbxml 项目文件,看来不只是打开一个文件这么简单。查找帮助文档,原来首先需要使用 pbxmlutils 这么个工具来打开项目pbxmlutils /getbuildenv /workspac
12、e “%_WINCEROOT%PBWorkspaces.pbxml“ /config “: “ SetEnv.bat这个命令运行后生成一个 setenv.bat.打开 setenv.bat 一看,全是环境变量的设置。(pbxmlutils 工具所在路径:默认安装后,我的 pb 路径是 c:program fileswincows ce platform builder5.00cepbbin)这个问题在书本上都没有体现,是不是书籍作者只是按照文档翻译,都没有自己实验一遍了?结论:如果想用命令行来处理 pb 的工作,(不打开 pb) 仅仅 wince.bat 是不够的。参考:使用批处理文件。http:/