amei
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2006-11-10
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
阅读:1511回复:4

编译时出现fatal error LNK1120,请教

楼主#
更多 发布于:2003-03-20 21:26
操作系统2K,安装了VC,DS,2000DDK,是按照本站的上教程的方法安装的,我想安装没有什么问题。
我照抄了一个hellowdm程序,然后在“开始”->“程序”“Development Kits”->“Windows 2000 DDK””->“Checked Build Environment”,进入编译环境,(我的2000DDK安装在c:\\ntddk目录下,hellowdm文件夹也在c:目录下),写:
C:\\NTDDK>cd\\HelloWDM    (回车)
C:\\HelloWDM>build    (回车)
然后就发现错误:(来自buildchk)
hellowdm.obj : error LNK2001: unresolved external symbol \"long __stdcall HelloWDMPnp(struct _DEVICE_OBJECT *,struct _IRP *)\" (?HelloWDMPnp@@YGJPAU_DEVICE_OBJECT@@PAU_IRP@@@Z)
hellowdm.obj : error LNK2001: unresolved external symbol \"long __stdcall HelloWDMAddDevice(struct _DRIVER_OBJECT *,struct _DEVICE_OBJECT *)\" (?HelloWDMAddDevice@@YGJPAU_DRIVER_OBJECT@@PAU_DEVICE_OBJECT@@@Z)
objchk\\i386\\HelloWDM.sys : fatal error LNK1120: 2 unresolved externals
请问我哪错了?
我是按照qud网友提供的资料做的

 

amei
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2006-11-10
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-20 21:58
附上buildchk文件和截获的编译结果
amei
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2006-11-10
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-03-20 21:59
buildchk
附件名称/大小 下载次数 最后更新
2003-03-20_buildchk.log (3KB)  0
X_ray
驱动中牛
驱动中牛
  • 注册日期2003-02-03
  • 最后登录2004-07-24
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-21 01:26
查看makefile文件。对照里面的OBJ文件和LIB文件有没有在指定的路径内。
amei
驱动牛犊
驱动牛犊
  • 注册日期2002-03-21
  • 最后登录2006-11-10
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望3点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-21 12:23
每个WDM程序所需要的makefile的内容不是都一样的吗
是不是SOURCES文件有问题:
TARGETNAME=HelloWDM
TARGETTYPE=DRIVER
DRIVERTYPE=WDM
TARGETPATH=OBJ

INCLUDES=$(BASEDIR)\\inc;\\
         $(BASEDIR)\\inc\\ddk;\\

TARGETLIBS=$(BASEDIR)\\lib\\*\\free\\usbd.lib\\

SOURCES=HelloWDM.cpp\\
我检查了DDKROOT环境变量设置的基目录为C:\\NTDDK,那么上面SOURCES文件中所指的BASEDIR就是C:\\NTDDK呢?
还有我的HelloWDM程序只用了一个头文件include \"ntddk.h\":
extern \"C\"
{
#endif

#include \"ntddk.h\"

#ifdef __cplusplus
}
#endif
我发现ntddk.h文件的目录为c:\\NTDDK\\inc\\ddk\\ntddk.h那
我的SOURCES文件是不是可以只写INCLUDES=$(BASEDIR)\\inc\\ddk;\\
请大家看看我的SOURCES文件是否有错
游客

返回顶部