我尝试使用以下命令编译WinXP x86 Release的驱动程序:
C:\WinDDK\7600.16385.0\bin\setenv.bat C:\WinDDK\7600.16385.0\ fre x86 WXP no_oacr
cd C:\src
build
由于这些关于msvcrt_winxp.obj的U1073错误而失败。我检查过C:\WinDDK
或其子目录中的任何地方都没有msvcrt_winxp.obj文件。
在我看来问题不在于实际代码,但也许我还没有在编译之前设置DDK。为什么我会收到这些U1073错误?
我发现了类似的问题 - driver build is failing for amd64 via winddk,但OP确实没有包含相关信息,例如他的构建输出,他的问题没有得到答复。我也发现了这个帖子 - http://www.techtalkz.com/microsoft-device-drivers/295015-wdk-linker-error-u1073.html,但也没有答案。
BUILD: Compile and Link for x86
BUILD: Loading c:\winddk\7600.16385.0\build.dat...
BUILD: Computing Include file dependencies:
BUILD: Start time: Thu Nov 13 12:04:25 2014
BUILD: Examining c:\src directory tree for files to compile.
c:\src
c:\src\common
c:\src\driver
c:\src\ui
BUILD: Saving c:\winddk\7600.16385.0\build.dat...
1>BUILD: Compiling (NoSync) c:\src\driver directory
2>BUILD: Compiling (NoSync) c:\src\ui directory
_NT_TARGET_VERSION SET TO WINXP
_NT_TARGET_VERSION SET TO WINXP
1>BUILD: Linking for c:\src\driver directory
2>BUILD: Linking for c:\src\ui directory
_NT_TARGET_VERSION SET TO WINXP
_NT_TARGET_VERSION SET TO WINXP
1>errors in directory c:\src\driver
1>NMAKE : fatal error U1073: don't know how to make 'c:\winddk\7600.16385.0\lib\wxp\i386\msvcrt_winxp.obj'
2>errors in directory c:\src\ui
2>NMAKE : fatal error U1073: don't know how to make 'c:\winddk\7600.16385.0\lib\wxp\i386\msvcrt_winxp.obj'
1>nmake.exe /nologo BUILDMSG=Stop. -i /nologo /f c:\winddk\7600.16385.0\bin\makefile.def BUILD_PASS=PASS2 LINKONLY=1 NOPASS0=1 MAKEDLL=1 MAKEDIR_RELATIVE_TO_BASEDIR= failed - rc = 2
2>nmake.exe /nologo BUILDMSG=Stop. -i /nologo /f c:\winddk\7600.16385.0\bin\makefile.def BUILD_PASS=PASS2 LINKONLY=1 NOPASS0=1 MAKEDLL=1 MAKEDIR_RELATIVE_TO_BASEDIR= failed - rc = 2
BUILD: Finish time: Thu Nov 13 12:04:26 2014
BUILD: Done
0 files compiled - 4 Errors
答案 0 :(得分:0)
我不知道为什么,但在我安装了更新版本 - 7600.16385.1
7600.16385.0
之后,构建工作正常,没有任何错误。
然而,它没有第一次工作,但我注意到它仍在抱怨msvcrt_winxp.obj
,所以我删除了任何中间构建输出,.err和.log文件。再次编译后,这次工作了。
我还注意到c:\WinDDK\7600.16385.1
中存在c:\WinDDK\7600.16385.0
,但c:\WinDDK\7600.16385.0
中没有。{/ p>
我必须承认我没有下载{{1}},这是我在硬盘上找到的旧文件夹,我以为我之前用它来编译项目,所以我只是复制了它。问题可能是因为这个问题。
总而言之,问题在于我的WinDDK安装,而不是项目本身,并且安装了更新的版本修复它。也许重新安装相同的版本也会起作用,但我现在无需验证是否正在使用更新的版本。