利用ddk自带的工具build.exe编译windows驱动
2008-08-30 11:36
423 查看
1、在开始菜单中选择合适的Build Environments(选择的Build Environment一定要和编译好的驱动运行的平台相同),这一步就会在打开的cmd窗口中设置好环境变量。
2、从DDK示例源代码目录拷贝makefile文件到你的驱动源文件目录中,并建立sources文件(可根据msdn帮助文件中的sources模板文件修改),其中makefile文件模板一般不用修改,修改sources文件为自己所需要的,如何修改sources文件可参考msdn帮助文件。
3、在1中打开的cmd窗口中cd到源代码目录,执行build -ceZ命令即可。
附:makefile及sources标准模板
1)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 components of Windows NT
#
!INCLUDE $(NTMAKEENV)/makefile.def
2)sources:
/*****************************************************************
* Using this sources template
* 1、Copy the contents of this topic to the Clipboard.
* 2、Paste this topic into a file using a text editor.
* 3、Replace the xxxxx in the TARGETNAME macro with your target name. For example:
* TARGETNAME=myprogram
* 4、Edit the TARGETPATH and TARGETTYPE macros to specify the location and type of the target.
* 5、Edit the INCLUDES macro if you have a private include directory to search.
* 6、Carefully edit the SOURCES macro so that it defines all the source files for the component that you are building.
* 7、Remove these instructions and all comments.
* 8、Save this file under the name "sources" (not "source.txt"), and quit the text editor.
* 9、Run the Build utility from the command line by typing build and pressing ENTER.
* 10、After you have completed these steps, you can run either the Build utility or NMAKE to build the component.
******************************************************************/
#
# The developer defines the TARGETNAME variable. It is the name of
# the target (component) that is being built by this makefile.
# It should not include any path or filename extension.
#
TARGETNAME=xxxxx
#
# The developer defines the TARGETPATH and TARGETTYPE variables.
# The first variable specifies where the target will be built. The second specifies
# the type of target (either PROGRAM, DYNLINK, LIBRARY, UMAPPL_NOLIB or
# BOOTPGM). Use UMAPPL_NOLIB when you are only building user-mode
# programs and do not need to build a library.
#
TARGETPATH=obj
# Select one of the following, and delete the others:
TARGETTYPE=PROGRAM
TARGETTYPE=DYNLINK
TARGETTYPE=LIBRARY
TARGETTYPE=UMAPPL_NOLIB
TARGETTYPE=BOOTPGM
TARGETTYPE=DRIVER
TARGETTYPE=DRIVER_LIBRARY
TARGETTYPE=EXPORT_DRIVER
TARGETTYPE=GDI_DRIVER
TARGETTYPE=MINIPORT
TARGETTYPE=NOTARGET
TARGETTYPE=PROGLIB#
# If your TARGETTYPE is DRIVER, you can optionally specify DRIVERTYPE.
# If you are building a WDM Driver, use DRIVERTYPE=WDM, if you are building
# a VxD use DRIVERTYPE=VXD. Otherwise, delete the following two lines.
#
DRIVERTYPE=WDM
DRIVERTYPE=VXD
#
# The TARGETLIBS macro specifies additional libraries to link against your target
# image. Each library path specification should contain an asterisk (*)
# where the machine-specific subdirectory name should go.
#
TARGETLIBS=
#
# The INCLUDES variable specifies any include paths that are specific to
# this source directory. Separate multiple paths with single
# semicolons. Relative path specifications are okay.
#
INCLUDES=../inc
#
# The developer defines the SOURCES macro. It contains a list of all the
# source files for this component. Specify each source file on a separate
# line using the line-continuation character. This minimizes merge
# conflicts if two developers are adding source files to the same component.
#
SOURCES=source1.c /
source2.c /
source3.c /
source4.c
i386_SOURCES=i386/source1.asm
IA64_SOURCES=ia64/source1.s
#
# Next, specify options for the compiler using C_DEFINES.
# All parameters specified here will be passed to both the C
# compiler and the resource compiler.
C_DEFINES=
#
# Next, specify one or more user-mode test programs and their type.
# Use UMTEST for optional test programs. Use UMAPPL for
# programs that are always built when the directory is built. See also
# UMTYPE, UMBASE, and UMLIBS. If you are building a driver, the next
# 5 lines should be deleted.
#
UMTYPE=nt
UMTEST=bunny*baz
UMAPPL=bunny*baz
UMBASE=0x1000000
UMLIBS=obj/*/bunny.lib
#
# Defining either (or both) the variables NTTARGETFILE0 and/or NTTARGETFILES
# causes makefile.def to include ./makefile.inc immediately after it
# specifies the top level targets (all, clean and loc) and their dependencies.
# The makefile.def file expands NTTARGETFILE0 as the first dependent for the
# "all" target and NTTARGETFILES as the last dependent for the "all" target.
# This is useful for specifying additional targets and dependencies that do not fit the
# general case covered by makefile.def.
#
# NTTARGETFILE0=
# NTTARGETFILES=
2、从DDK示例源代码目录拷贝makefile文件到你的驱动源文件目录中,并建立sources文件(可根据msdn帮助文件中的sources模板文件修改),其中makefile文件模板一般不用修改,修改sources文件为自己所需要的,如何修改sources文件可参考msdn帮助文件。
3、在1中打开的cmd窗口中cd到源代码目录,执行build -ceZ命令即可。
附:makefile及sources标准模板
1)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 components of Windows NT
#
!INCLUDE $(NTMAKEENV)/makefile.def
2)sources:
/*****************************************************************
* Using this sources template
* 1、Copy the contents of this topic to the Clipboard.
* 2、Paste this topic into a file using a text editor.
* 3、Replace the xxxxx in the TARGETNAME macro with your target name. For example:
* TARGETNAME=myprogram
* 4、Edit the TARGETPATH and TARGETTYPE macros to specify the location and type of the target.
* 5、Edit the INCLUDES macro if you have a private include directory to search.
* 6、Carefully edit the SOURCES macro so that it defines all the source files for the component that you are building.
* 7、Remove these instructions and all comments.
* 8、Save this file under the name "sources" (not "source.txt"), and quit the text editor.
* 9、Run the Build utility from the command line by typing build and pressing ENTER.
* 10、After you have completed these steps, you can run either the Build utility or NMAKE to build the component.
******************************************************************/
#
# The developer defines the TARGETNAME variable. It is the name of
# the target (component) that is being built by this makefile.
# It should not include any path or filename extension.
#
TARGETNAME=xxxxx
#
# The developer defines the TARGETPATH and TARGETTYPE variables.
# The first variable specifies where the target will be built. The second specifies
# the type of target (either PROGRAM, DYNLINK, LIBRARY, UMAPPL_NOLIB or
# BOOTPGM). Use UMAPPL_NOLIB when you are only building user-mode
# programs and do not need to build a library.
#
TARGETPATH=obj
# Select one of the following, and delete the others:
TARGETTYPE=PROGRAM
TARGETTYPE=DYNLINK
TARGETTYPE=LIBRARY
TARGETTYPE=UMAPPL_NOLIB
TARGETTYPE=BOOTPGM
TARGETTYPE=DRIVER
TARGETTYPE=DRIVER_LIBRARY
TARGETTYPE=EXPORT_DRIVER
TARGETTYPE=GDI_DRIVER
TARGETTYPE=MINIPORT
TARGETTYPE=NOTARGET
TARGETTYPE=PROGLIB#
# If your TARGETTYPE is DRIVER, you can optionally specify DRIVERTYPE.
# If you are building a WDM Driver, use DRIVERTYPE=WDM, if you are building
# a VxD use DRIVERTYPE=VXD. Otherwise, delete the following two lines.
#
DRIVERTYPE=WDM
DRIVERTYPE=VXD
#
# The TARGETLIBS macro specifies additional libraries to link against your target
# image. Each library path specification should contain an asterisk (*)
# where the machine-specific subdirectory name should go.
#
TARGETLIBS=
#
# The INCLUDES variable specifies any include paths that are specific to
# this source directory. Separate multiple paths with single
# semicolons. Relative path specifications are okay.
#
INCLUDES=../inc
#
# The developer defines the SOURCES macro. It contains a list of all the
# source files for this component. Specify each source file on a separate
# line using the line-continuation character. This minimizes merge
# conflicts if two developers are adding source files to the same component.
#
SOURCES=source1.c /
source2.c /
source3.c /
source4.c
i386_SOURCES=i386/source1.asm
IA64_SOURCES=ia64/source1.s
#
# Next, specify options for the compiler using C_DEFINES.
# All parameters specified here will be passed to both the C
# compiler and the resource compiler.
C_DEFINES=
#
# Next, specify one or more user-mode test programs and their type.
# Use UMTEST for optional test programs. Use UMAPPL for
# programs that are always built when the directory is built. See also
# UMTYPE, UMBASE, and UMLIBS. If you are building a driver, the next
# 5 lines should be deleted.
#
UMTYPE=nt
UMTEST=bunny*baz
UMAPPL=bunny*baz
UMBASE=0x1000000
UMLIBS=obj/*/bunny.lib
#
# Defining either (or both) the variables NTTARGETFILE0 and/or NTTARGETFILES
# causes makefile.def to include ./makefile.inc immediately after it
# specifies the top level targets (all, clean and loc) and their dependencies.
# The makefile.def file expands NTTARGETFILE0 as the first dependent for the
# "all" target and NTTARGETFILES as the last dependent for the "all" target.
# This is useful for specifying additional targets and dependencies that do not fit the
# general case covered by makefile.def.
#
# NTTARGETFILE0=
# NTTARGETFILES=
相关文章推荐
- 利用ddk自带的工具build.exe编译windows驱动
- 利用ddk自带的工具build.exe编译windows驱动
- windows环境中利用NMake工具编译连接C++源代码
- python利用windows编译的sqlcipher工具对sqlite数据库加密
- 移植触屏驱动,利用buildroot编译tslib,
- 在VC中利用Makefile工程编译DDK驱动
- C# 利用自带xsd.exe工具操作XML-如通过XML生成xsd文件
- 微软自带的防反编译工具dotfuscator.exe的使用
- 利用windows自带的工具终止顽固进程
- C# 利用自带xsd.exe工具操作XML-如通过XML生成xsd文件
- [转载收藏] 在VC中利用Makefile工程编译DDK驱动
- 利用微软自带aspnet_regiis.exe工具加密web.config文件
- 使用mingw-get.exe命令行工具在Windows平台上安装C++等语言的编译工具
- C# 利用自带xsd.exe工具操作XML-如通过XML生成xsd文件
- 在VC中利用Makefile工程编译DDK驱动
- C# 利用自带xsd.exe工具操作XML-如通过XML生成xsd文件
- windows下安装ubuntu 12.04---利用ubuntu的iso包中的wubi.exe工具安装
- 微软自带的防反编译工具dotfuscator.exe的使用
- 利用Windows自带磁盘清理工具给系统“瘦身”
- 使用DDK提供的build进行编译驱动一点总结