`

解读makefile和source文件

阅读更多

需要三个文件:
源文件(假设只有一个), MAKEFILE, SOURCE总共三个文件。
源文件是你的驱动程序了。

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
其实就一句话。一般不用修改
SOURCE文件:
TARGETNAME=WssProcMon
TARGETPATH=..\obj
TARGETTYPE=DRIVER
SOURCES=WssProcMon.c
TARGETNAME是你准备编译成文件的名字
TARGETPATH产生的驱动的目录
TARGETTYPE目标类型,当然是驱动了。
SOURCES 这里是包含的源文件程序,可以包含多个文件,我这里只有一个。
还可以有包含头文件的,需要包含下面的语句:
INCLUDES=..\inc
这是头文件包含的地方,当然,也可以直接放在当前目录下。
这样就差不多了,这样把这三个文件放在同个文件夹中。
进入ddk的编译器,然后进入该文件夹,使用命令:
build -cez
就可以看到如下的信息:
D:\工作\软件白名单系统\进程监控驱动\src>build -cez
BUILD: Adding /Y to COPYCMD so xcopy ops won’t hang.
BUILD: Using 2 child processes
BUILD: Object root set to: ==> objchk_wnet_x86
BUILD: Compile and Link for i386
BUILD: Examining d:\工作\软件白名单系统\进程监控驱动\src directory for files to compile.
BUILD: Compiling d:\工作\软件白名单系统\进程监控驱动\src directory
1>Compiling - wssprocmon.c for i386
BUILD: Linking d:\工作\软件白名单系统\进程监控驱动\src directory
1>Linking Executable - d:\工作\软件白名单系统\进程监控驱动\obj\i386\wssprocmon.sys for i386
BUILD: Done
2 files compiled
1 executable built
这样就可以看到sys文件了。
补充下:
TARGETNAME=HelloWDM //编译出来的驱动程序的名称
TARGETTYPE=DRIVER      //编译的类型是驱动程序编译
DRIVERTYPE=WDM           //驱动程序的类型是WDM驱动程序
TARGETPATH=OBJ             //生成的文件存放在OBJ目录中
INCLUDES=$(BASEDIR)\inc;\   //这是需要引入的头文件
         $(BASEDIR)\inc\ddk;\
TARGETLIBS=$(BASEDIR)\lib\*\free\usbd.lib\  //这是需要引入的库文件
SOURCES=HelloWDM.cpp\    //这是源码文件
分享到:
评论

相关推荐

    VC文件扩展名解读大全

    ### VC文件扩展名解读大全 #### 一、概述 在软件开发过程中,特别是对于C++开发者而言,了解各种文件扩展名及其用途是非常重要的。本文旨在详细介绍与VC(Visual C++)相关的各种文件扩展名,帮助读者更好地理解...

    astrolog6.4版本source code

    2. `makefile.bgi`、`makefile.cfg`、`makefile.com`:这些是构建和配置文件,用于编译和构建Astrolog程序。它们定义了编译规则、目标平台和编译选项。 3. `sweph.cpp`、`swecl.cpp`、`swephlib.cpp`:这些文件是...

    rtmidirouter-0.3.0-Source.tar-源码.rar

    标题中的“rtmidirouter-0.3.0-Source.tar-源码.rar”表明这是一个开源项目,名为“rtmidirouter”,版本号为0.3.0,它提供了源代码供用户研究、修改或扩展。这个项目可能是一个用于处理RTP(Real-time Transport ...

    openslam_gmapping-master_openslam_Gmapping_ROS_safetyxw6_

    **ROS (Robot Operating System) 系统** ROS是机器人领域广泛使用的开源操作...这个项目提供了ROS下的Gmapping源码,包括核心算法实现、辅助工具、配置文件和构建脚本,为开发者研究和应用SLAM技术提供了宝贵的资源。

    the Zynq Book Tutorials and source

    这些源代码通常会分为硬件描述语言文件(如Verilog或VHDL)、软件应用程序(如C/C++)、配置文件以及Makefile等。通过分析和运行这些代码,学习者可以更直观地理解Zynq系统的实际运作方式,并加深对Zynq平台的理解。...

    嵌入式Linux开发工具的使用.pdf

    - **功能解读**:`make`是一个自动化的构建工具,能够根据Makefile文件中的指令自动执行编译、链接等任务,大大简化了构建过程。 - **具体操作**:通过定义目标、依赖关系和规则,`make`能够自动确定哪些文件需要...

    GAMS LINGO XPRESS CPLEX MATLAB CPLUSPLUS\cplex_ppt\Tutorial_Calling CPLEX Functions from a C Source File.ppt

    为了编译这个源文件,你需要一个Makefile,这是一个自动化脚本,告诉编译器在哪里找到库文件和CPLEX的许可证信息。例如,Makefile中的`APPL_NAME`定义了应用程序的名字,而`MAIN_SRCS`则指定了你的C源文件名。 在...

    中英文双语美化版资源批量打开程序源代码

    2. 批量处理:涉及到文件操作和遍历,可能使用了文件系统API和队列等数据结构。 3. 用户界面美化:UI设计原则,如色彩搭配、布局设计以及图形元素的使用。 4. 编程语言基础:根据源代码的编程语言(如C++、Java、...

    bsp-AT91SAM9261-EK.zip_5912 omap_AT91SAM9261_QNX 源码_omap 5912_qn

    4. **source.xml**:可能是项目源码的配置文件,描述了源代码的组织结构和编译配置,有助于构建工具理解源码布局。 5. **images**:此目录可能包含编译生成的二进制镜像文件,如引导加载器、固件等,这些是运行在...

    API Blueprint Parser (C++).zip

    解析器可能会使用正则表达式、语法分析器(如LL(1)或LR(1)解析器)或解析树来解读蓝图文件的语法结构。 在"mysource"子文件夹中,我们可能找到以下组件: 1. 源代码文件(.cpp和.h):包含解析器的实现和接口,...

    Linux源码

    "A heavily Commented Linux Kernel Source Code_cn.pdf"这个文档可能提供了解读源码的重要注释和指南,对于初学者来说尤其有价值。通过学习,不仅可以掌握Linux内核的工作原理,还能为参与开源社区贡献代码打下坚实...

    elm329-master.zip

    2. **Makefile或Keil工程文件**:这些文件用于构建和编译项目,确保所有源文件被正确链接和优化。 3. **头文件(.h)**:定义了函数原型、结构体和常量,方便代码复用和模块化。 4. **驱动代码(.c)**:包含了与STM...

    15个编程好习惯

    13. **文件组织**:将项目文件按类型分门别类,如SOURCE(源代码)、HEADERS(头文件)、MAKE(Makefile)、EXES(可执行文件)等,保持项目结构清晰。 14. **学习他人的代码**:阅读和分析他人的代码,借鉴他们的...

    camera porting.docx

    - 在Makefile中加入新的对象文件(`obj-$(CONFIG_S5K3L2)+=s5k3l2.o`)。 - 修改s5k3l2.c中的配置信息,尤其是电源管理相关的配置。 - **示例代码**: ```c static struct msm_sensor_power_settings s5k3l2_...

    MKL编译与链接.doc

    正确地指定编译器、库路径和库文件是必不可少的。以下是一个使用Intel Fortran编译器(ifort)的示例Makefile片段: ```makefile mkllib = /opt/intel/Compiler/11.1/064/mkl/lib/em64t mklinc = /opt/intel/...

    android_device_huawei_hi6250-common

    这个组件通常包含了与硬件相关的驱动程序、配置文件和其他适配代码,以使Android系统能够正确运行在华为的这款设备上。描述中的内容与标题相同,没有提供额外的信息。 标签“Java”可能是指在这个项目中,部分代码...

Global site tag (gtag.js) - Google Analytics