阅读:1767回复:4
谁能给出VC生成makefile做驱动的简单例子?
使用driverwork编了几个驱动后,感觉没掌握驱动的真正内涵。现在想丢弃一切框架。看了几天文章,大概知道使用makefile编写的步骤。但是编译的时候总是有问题:Buile Command Line之类的我都设置了(MakeDrvr %DDKROOT% 。。。。),可是编译的时候即使我的C代码了故意加入错误它也不报错。
现在想得到一个例子,能编译成功、生成.sys就行,不需要太复杂。我手里的什么wdm1、wdm2看的我糊涂。 |
|
沙发#
发布于:2004-01-12 22:47
驱动的makefile都一样的,都是include了makefile.def文件。
需要做的大部分在source文件做了。 看看DDK的例子source文件和makefile文件。 |
|
板凳#
发布于:2004-01-12 22:56
makefile、source我当然有了,我是想使用VC――NEW一个makefile的工程来做驱动,但是。。,就像上面说的一样,现在发现例子是最快的入门方法
|
|
地板#
发布于:2004-01-12 23:09
sorry,原来是说new一个makefile工程的方法啊。
那要把你的bat文件写好了,MakeDrvr %DDKROOT% 。。。这样似乎不行了,除非你已经先设置了DDKROOT的环境变量,一般都是这样(假设ddk安装目录是e:\\2kddk): MakeDrvr e:\\2kddk checked 。。。(可能还有其它参数) |
|
地下室#
发布于: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目录;利于重新启动设 备时启动新的驱动程序。 |
|