阅读:1871回复:6
编译出错
我编译98ddk下的ndis\\vxd时出现
BUILD: environment variable PROCESSOR_ARCHITECTURE must be defined 错误,什么原因 |
|
沙发#
发布于:2002-03-25 09:37
这是DDK编译环境没有初始化成功的原因。PROCESSOR_ARCHITECTURE 是一个关于处理机的环境变量,它指出了处理机的位数和系列。如32、64位,x86系列,ALPHA,MACTONISH等。
如果你按正常的方式启动DDK和初始相关环境变量还不成功的话,可以在命令行下作如下设定:set PROCESSOR_ARCHITECTURE =i386即可。 |
|
|
板凳#
发布于:2002-03-25 11:58
我用build -all 编译鼠标的源码mousedrv目录下可以,不过显示不能存nt目录,并产生了obj/i386等目录,建了一个nt目录也是一样
但什么也没有生成,连一个驱动都没有 |
|
地板#
发布于:2002-03-25 13:21
由于build程序的bug,你需要自己创建checked和free子目录,在2000下依次是objchk和objfre。否则,驱动程序不会生成。
|
|
|
地下室#
发布于:2002-03-25 23:00
老大,
不行呀,我在d盘、98ddk 、bin、 mousedrv 、obj、 i386、都分别建了两个free和checked目录但都没有生成驱动程序,出错信息如下:D:\\98DDK\\mousedrv>build -386 BUILD: Compile and Link for i386 BUILD: Loading \\nt\\build.dat... BUILD: Computing Include file dependencies: BUILD: Examining d:\\98ddk\\mousedrv directory for files to compile. BUILD: Building generated files in d:\\98ddk\\mousedrv BUILD: Examining d:\\98ddk\\mousedrv directory for files to compile. (2nd Pass) BUILD: Linking d:\\98ddk\\mousedrv directory BUILD: Done 我想是(2nd Pass)表示不行,还有 我用vc6.0编vpacket下的vxd目录出现如下错误 Write.obj : error LNK2001: unresolved external symbol _NdisSend@12 Write.obj : error LNK2001: unresolved external symbol _PacketAllocatePacketBuffer Write.obj : error LNK2001: unresolved external symbol _NdisFreePacket@4 Write.obj : error LNK2001: unresolved external symbol _NdisReinitializePacket@4 Write.obj : error LNK2001: unresolved external symbol _PacketPageUnlock Write.obj : error LNK2001: unresolved external symbol _NdisFreeBuffer@4 Write.obj : error LNK2001: unresolved external symbol _NdisUnchainBufferAtFront@8 我找了这个目录下的所有文件都没有ndissend的定义呀? 帮忙帮到底吧, |
|
5楼#
发布于:2002-03-26 09:04
运行BUILD编译驱动程序的条件是必须存在至少两个文件(除了源文件以外),它们是SOURCES和MAKEFILE,否则BUILD将无法知道如何编译。你检查一下你的目录下是否有这两个文件。另一种可能是BUILD会根据一个DIRS文件获得包含SOURCES和MAKEFILE文件的路径,然后回溯编译。
[quoto/] 我用vc6.0编vpacket下的vxd目录出现如下错误 Write.obj : error LNK2001: unresolved external symbol _NdisSend@12 Write.obj : error LNK2001: unresolved external symbol _PacketAllocatePacketBuffer Write.obj : error LNK2001: unresolved external symbol _NdisFreePacket@4 Write.obj : error LNK2001: unresolved external symbol _NdisReinitializePacket@4 Write.obj : error LNK2001: unresolved external symbol _PacketPageUnlock Write.obj : error LNK2001: unresolved external symbol _NdisFreeBuffer@4 Write.obj : error LNK2001: unresolved external symbol _NdisUnchainBufferAtFront@8 我找了这个目录下的所有文件都没有ndissend的定义呀? 帮忙帮到底吧, [/quoto] 这应该是调用方式的错误。在VXD在调用这些服务好象是需要显式声明为__stdcall,否则连接器无法正确连接。 |
|
|
6楼#
发布于:2002-03-26 18:57
新的问题
D:\\98DDK\\mousedrv>build -all BUILD: Compile and Link for Alpha, Axp64, i386, IA64 BUILD: Computing Include file dependencies: BUILD: f:\\progra~1\\micros~1\\vc98\\include\\exdisp.odl(31): f:\\progra~1\\micros~1\\vc 98\\include\\exdisp.odl - invalid include statement: importlib(STDOLE_TLB); BUILD: f:\\progra~1\\micros~1\\vc98\\include\\vidsvr.odl(16): f:\\progra~1\\micros~1\\vc 98\\include\\vidsvr.odl - invalid include statement: importlib(STDOLE_TLB); BUILD: Examining d:\\98ddk\\mousedrv directory for files to compile. BUILD: Saving \\nt\\build.dat... BUILD: Building generated files in d:\\98ddk\\mousedrv BUILD: Examining d:\\98ddk\\mousedrv directory for files to compile. (2nd Pass) BUILD: Linking d:\\98ddk\\mousedrv directory Linking Executable - obj\\i386\\mouse.drv for i386 link() : error : Segment reference in fixup record obj\\i386\\mouse.obj() : error LNK1123: failure during conversion to COFF: file in valid or corrupt rc() : error RW1030: obj\\i386\\mouse.drv: Unable to open BUILD: Done 1 executables built - 4 Warnings - 3 Errors |
|