阅读:1511回复:4
编译时出现fatal error LNK1120,请教
操作系统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网友提供的资料做的 |
|
沙发#
发布于:2003-03-20 21:58
附上buildchk文件和截获的编译结果
|
|
板凳#
发布于:2003-03-20 21:59
buildchk
|
|
|
地板#
发布于:2003-03-21 01:26
查看makefile文件。对照里面的OBJ文件和LIB文件有没有在指定的路径内。
|
|
地下室#
发布于: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文件是否有错 |
|