Ответ 1
Ниже выведено из компилятора. Странно, что запуск сборки во второй раз преуспевает. Однако я подозреваю, что проблема может быть связана с этой ошибкой с запуском mt.exe, который отвечает за вложение информации из манифеста в исполняемый файл...
Generating Code...
link /LIBPATH:"c:\Qt\4.5.2-vc\lib" /NOLOGO /DEBUG /MANIFEST /MANIFESTFILE:"debug\formExtractor.intermediate.manifest" /SUBSYSTEM:WINDOWS "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /OUT:debug\formExtractor.exe @.\nmD932.tmp
mt.exe -nologo -manifest "debug\formExtractor.intermediate.manifest" -outputresource:debug\formExtractor.exe;1
'mt.exe' is not recognized as an internal or external command,
operable program or batch file.
NMAKE : fatal error U1077: 'mt.exe' : return code '0x1'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
Exited with code 2.
UPDATE
Неспособность запустить mt.exe во время процесса связывания действительно была причиной проблемы. Я добавил путь к SDK Windows (C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
) в переменную среды PATH, и теперь я могу запустить исполняемый файл.
Комментарии к различным ответам;
@Shay
Выходной файл txt из sxstrace пуст. Не знаю, почему. Однако в журнале приложений есть следующая информация:
Faulting application formExtractor.exe, version 0.0.0.0, time stamp 0x4a638ee1, faulting module MSVCR90D.dll, version 6.0.6002.18005, time stamp 0x49e03824, exception code 0xc0000135, fault offset 0x0006f04e, process id 0xf68, application start time 0x01ca08ba801ac5cf.
Версия 6.0.6002.18005?
Что это за черт?
@Кирилл В. Лядвинский
Dependency Walker находит msvcr90d.dll
, используемый файлом qtwebkit4.dll
в c:\windows\winsxs\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\MSVCR90D.DLL
но не находит (другую версию?) msvcr90d.dll
файл, напрямую связанный с исполняемым файлом. Однако DW, кажется, не показывает его версию где-нибудь, не так ли?
Конкурс файла formExtractor.intermediate.manifest
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*' />
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
Из файла манифеста выглядит, что исполняемый файл связан с другой версией msvcr90d.dll
, чем с qtwebkit4.dll
. Странно, что обе версии msvcr90d.dll
присутствуют в папке c:\windows\winsxs
в следующих подпапках:
x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.21022.8_none_96748342450f6aa2
а также
x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb
Любые идеи?
@knight666
Я использую фреймворк Qt, который я скомпилировал с использованием именно того компилятора, который я использую сейчас, поэтому я думаю, что здесь нет несоответствия. Кроме того, Dependency Walker показывает, что отсутствующий файл msvcr90d.dll
связан с напрямую с исполняемым файлом, поэтому я не думаю об ошибке какой-либо сторонней библиотеки.