фатальная ошибка U1073: не знаю, как сделать ‘c: \ winddk \ 7600.16385.0 \ lib \ wxp \ i386 \ msvcrt_winxp.obj’

Я пытаюсь скомпилировать драйвер для 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

Это терпит неудачу из-за этих ошибок U1073 о msvcrt_winxp.obj. Я проверил, и нет нигде файла msvcrt_winxp.obj в C:\WinDDK или его подкаталоги.

Мне кажется, проблема не в самом коде, но, возможно, я не настроил DDK прямо перед компиляцией. Почему я получаю эти ошибки U1073?

Я нашел этот похожий вопрос — сбой сборки драйвера для amd64 через winddk, но там ОП не включил соответствующую информацию, такую ​​как результаты его сборки, и его вопрос остается без ответа. Я также нашел эту тему — 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

Решение

Я не знаю почему, но после того, как я установил еще более новую версию — 7600.16385.1 от http://www.microsoft.com/en-us/download/details.aspx?id=11800, Здание работало нормально, без ошибок.

Однако в первый раз это не сработало, но я заметил, что все еще жалуюсь 7600.16385.0, поэтому я удалил все промежуточные выходные данные сборки, файлы .err и .log. После компиляции снова все заработало.

Я также заметил, что msvcrt_winxp.obj присутствовал в c:\WinDDK\7600.16385.1, но не в c:\WinDDK\7600.16385.0,

Я должен признать, что я не скачал c:\WinDDK\7600.16385.0Это была старая папка, которую я нашел на своем жестком диске, и я предположил, что использовал ее для компиляции проекта раньше, поэтому я просто скопировал ее. Проблемы могли быть из-за этого.

Итак, в заключение, проблема была с моей установкой WinDDK, а не с самим проектом, и установка более новой версии исправила это. Может быть, переустановка той же версии тоже подействовала бы, но мне не нужно проверять, что теперь она работает с более новой версией.

0

Другие решения