dswei
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2010-06-13
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1699回复:4

谁能给出VC生成makefile做驱动的简单例子?

楼主#
更多 发布于:2004-01-12 22:34
使用driverwork编了几个驱动后,感觉没掌握驱动的真正内涵。现在想丢弃一切框架。看了几天文章,大概知道使用makefile编写的步骤。但是编译的时候总是有问题:Buile Command Line之类的我都设置了(MakeDrvr %DDKROOT% 。。。。),可是编译的时候即使我的C代码了故意加入错误它也不报错。
现在想得到一个例子,能编译成功、生成.sys就行,不需要太复杂。我手里的什么wdm1、wdm2看的我糊涂。
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-01-12 22:47
驱动的makefile都一样的,都是include了makefile.def文件。
需要做的大部分在source文件做了。
看看DDK的例子source文件和makefile文件。
dswei
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2010-06-13
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-01-12 22:56
makefile、source我当然有了,我是想使用VC――NEW一个makefile的工程来做驱动,但是。。,就像上面说的一样,现在发现例子是最快的入门方法
arthurtu
驱动巨牛
驱动巨牛
  • 注册日期2001-11-08
  • 最后登录2020-12-19
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望161点
  • 贡献值0点
  • 好评度35点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-01-12 23:09
sorry,原来是说new一个makefile工程的方法啊。
那要把你的bat文件写好了,MakeDrvr %DDKROOT% 。。。这样似乎不行了,除非你已经先设置了DDKROOT的环境变量,一般都是这样(假设ddk安装目录是e:\\2kddk):
MakeDrvr e:\\2kddk checked 。。。(可能还有其它参数)
fu_tiansweet
驱动老牛
驱动老牛
  • 注册日期2004-01-08
  • 最后登录2009-07-10
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望526点
  • 贡献值0点
  • 好评度281点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-01-14 10:38
请注意以下设置:
Debug 环境配置
命 令 行:nmakedrv checked
重建选项:-namak /a
输出文件名:文件名.sys

Release 环境配置
命 令 行:nmakedrv free
重建选项:-namak /a
输出文件名:文件名.sys

文件:nmakedrv.bat

@echo off
if \"%1\"==\"\" goto exit
rem DDK安装路径
set mDDKDir=E:\\NTDDK

if not exist %mDDKDir%\\bin\\setenv.bat goto exit
call %mDDKDir%\\bin\\setenv %mDDKDir% %1

rem 转入工程目录
E:
cd \\temp1
build -b -w %2 %3 %4 %5 %6 %7 %8 %9
:exit

注:DDK安装路径、转入工程目录需自己修改

文件:Sources

TARGETNAME=temp1
TARGETTYPE=DRIVER
DRIVERTYPE=WDM
TARGETPATH=OBJ

INCLUDES=$(BASEDIR)\\inc;
TARGETLIBS=$(DDK_LIB_PATH)\\usbd.lib

USE_MAPSYM=1

SOURCES= \\
script1.rc \\
IusbDbg.c \\
IsoUsb.c \\
IsoPnP.c \\
IsoPwr.c \\
IoctlIso.c \\
IsoStrm.c \\
OcrwIso.c

NTTARGETFILES=PostBuildSteps

注:temp1 为自定义工程文件名;TARGETLIBS指用到的库列表;SOURCES源文件(不

要头文件),资源文件列表。这三处需自己修改。

下面两个文件不用修改,按此建好即可。

文件:MAKEFILE

#
# DO NOT EDIT THIS FILE!!! Edit .\\sources. if you want to add a new

source
# file to this component. This file merely indirects to the real make

file
# that is shared by all the driver components of the Windows NT DDK
#

!INCLUDE $(NTMAKEENV)\\makefile.def

文件:Makefile.inc

PostBuildSteps: $(TARGET)
!if \"$(DDKBUILDENV)\"==\"free\"
rebase -B 0x10000 -X . $(TARGET)
!endif
copy $(TARGET) $(WINDIR)\\system32\\drivers

注:此 copy 是将你的驱动程序复制到系统system32\\drivers目录;利于重新启动设

备时启动新的驱动程序。
游客

返回顶部