Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4958566
  • 博文数量: 1696
  • 博客积分: 10870
  • 博客等级: 上将
  • 技术积分: 18357
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-30 15:16
文章分类
文章存档

2017年(1)

2016年(1)

2015年(1)

2013年(1)

2012年(43)

2011年(17)

2010年(828)

2009年(568)

2008年(185)

2007年(51)

分类: WINDOWS

2010-04-18 00:13:24

第一步:下载并安装GRMWDK_EN_7600_1.ISO,你可以从下载获取安装光盘。

第二部:编写你的第一个makerelease.bat脚本。(名字可以随便取,比如a.bat, test.bat)

内容如下:
set PROJDIR=%CD%
if [%DEBUG%]==[1] (set BUILDTYPE=chk) else (set BUILDTYPE=fre)

REM Build the i386 Windows XP driver
cmd /c "%WDKPATH%\bin\setenv.bat %WDKPATH% %BUILDTYPE% x86 wxp && CD %PROJDIR% && build/c""

说明:cmd /c "commandline_1 && commandline_2 && commandline_3 && ....",是一气呵成的,也就是说,commandline_1 执行完后,在其基础上,紧接着执行commandline_2。

此处如果写成:
%WDKPATH%\bin\setenv.bat %WDKPATH% %BUILDTYPE% x86 wxp
CD %PROJDIR%
build/c
执行完后,会结束。

>D:\WinDDK\7600.16385.1\bin\setenv.bat D:\WinDDK\7600.16385
1 fre x86 wxp
Launching OACR monitor

D:\WinDDK\7600.16385.1>

你需要手动执行后面的2行语句:
CD %PROJDIR%
build/c

%PROJECT%路径下没有build.exe或者build.exe,build.com之类的东东,build/c 为什么能执行成功,build后面带的/c参数又是何物?

第一个问题:build.exe之流存在何处?
D:\>set path
Path=D:\WinDDK\7600.16385.1\tools\sdv\bin;D:\WinDDK\7600.16385.1\bin\x86\oacr;D:
\WinDDK\7600.16385.1\tools\pfd\bin\bin\x86;D:\WinDDK\7600.16385.1\tools\tracing\
i386;D:\WinDDK\7600.16385.1\bin\x86;D:\WinDDK\7600.16385.1\bin\x86\x86;D:\WinDDK
\7600.16385.1\bin\SelfSign
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH

查看PATH环境变量:
其中D:\WinDDK\7600.16385.1\bin\x86路径下就藏着build.exe这个宝贝,嘿嘿。

第二个问题: /c 参数作何用处?

D:\>build /? 【注意这里的build.exe是WinDDK安装路径下的东东】

BUILD: Version 6.1.7063.0

Usage: BUILD [-?] display this message
        [/#] force _objects.mac to be regenerated
        [/0] pass 0 generation only, no compile, no link
        [/2] same as old /Z (only do a 2 pass build - no pass 0)
        [/3] same as /Z
        [/a] allows synchronized blocks and drains during link pass
        [/b] displays full error message text (doesn't truncate)
        [/B [baseline]] Checks the build failures against a baseline
                If there is no baseline,terminates the build on the first error
        [/c] deletes all object files
        [/C] deletes all .lib files only

"/c" 原来是用于删除所有历史生成的obj文件的开关。
这里build/c 就相当于linux里面的先make clean再make all。

D:\>build/c
BUILD: Compile and Link for x86
BUILD: Loading d:\winddk\7600.16385.1\build.dat...
BUILD: Computing Include file dependencies:
BUILD: Start time: Sat Apr 17 23:50:30 2010

再看看build.dat这个东东:
D "d:\" 2
 F "a.c" 1002 10 b351d372 0 0
 F "subdir" 1002 10 cb08424a 0 0
  I "winsock2.h" 1800 0
  I "ws2tcpip.h" 1800 0

D:代表 文件夹
F:代表 文件,如.c文件和子文件夹,等等。
I:代表 头文件,如.h文件

-- 2010-4-18 0:34am


阅读(5306) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~