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

0

Я пытаюсь скомпилировать драйвер для 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, но там 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
    Версия WDK 7600 была выпущена в 2010 году, она нацелена на Windows 7 и Server 2008. Это не очень хорошо сочетается с «это старый проект» и нацелен на XP, конечно же, вам нужно будет использовать версию WDK, которую использовал оригинальный программист чтобы избежать ошибок makefile. Что бы это ни было, вы не оставляете хлебные крошки. Между прочим, сборка msvcrt.dll должна выполняться только машиной Microsoft.
  • 0
    ОК, версия 7600.16385.0 поддерживает WinXP, если она этого не сделала, эта строка C:\WinDDK\7600.16385.0\bin\setenv.bat C:\WinDDK\7600.16385.0\ fre x86 WXP no_oacr не удалась бы. На самом деле, я только что проверил это, и если я заменил WXP на WXP2, он потерпит неудачу. Так что XP поддерживается. Кроме того, я старый программист, но это было 3 года назад с тех пор, как я его коснулся, так что да, это может быть кто-то другой.
Теги:
wdk
build-error

1 ответ

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, а не в самом проекте, и установке новой версии исправлено это. Возможно, повторная установка той же версии тоже сработала бы, но мне не нужно проверять, что теперь это работает с более новой версией.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню