error LNK2005: _KeInitializeSpinLock@4 already defined in driverentry.obj DDK编译错误解决

来源:互联网 发布:百度seo技术视频 编辑:程序博客网 时间:2024/05/16 01:48

    开发编译一个Windows DDK的驱动时候,出现类似的编译错误 wdm.lib(ntoskrnl.exe) : error LNK2005: _KeInitializeSpinLock@4 already defined in driverentry.obj。

    查了下资料,没有类似的提示。后面发现是头文件顺序调整下就可以正常编译通过了。

    

#include <ntddk.h>#include <devioctl.h>#include <initguid.h>#include <wdmguid.h>#include <ntddser.h>#include <stdarg.h>#include <stdio.h>#include <ntstrsafe.h>#include <wdm.h>
     把 wdm.h 头文件调换到driverentry.c的最前面即可。调整后如下:

#include <wdm.h>#include <ntddk.h>#include <devioctl.h>#include <initguid.h>#include <wdmguid.h>#include <ntddser.h>#include <stdarg.h>#include <stdio.h>#include <ntstrsafe.h>
     如此,即可正常编译。

0 0