Проблема с программой Visual C ++ - не удается найти Debug CRT - PullRequest
5 голосов
/ 02 марта 2010

У меня есть друг, который забирает у меня проект Visual C ++ и испытывает затруднения при его запуске. Это графическое приложение, использующее библиотеку Qt GUI. Причина, по которой я упоминаю об этом, из-за ошибки ниже.

Он может собрать и связать программу с помощью Visual Studio 2010, но когда он ее запускает, в средстве просмотра событий появляется следующее сообщение:

Сбой генерации контекста активации за "D: \ Test \ Qt \ 4.2.2 \ Bin \ QtGuid4.dll". Зависимая сборка Microsoft.VC80.DebugCRT, processorArchitecture = "x86", PublicKeyToken = "1fc8b3b9a1e18e3b", type = "win32", version = "8.0.50608.0" невозможно найти. Пожалуйста, используйте sxstrace.exe для подробной диагностики.

Когда мы делаем, как сообщение просит и запускает sxstrace.exe, вот что мы видим:

Начать генерацию контекста активации. Входной параметр: Flags = 0 ProcessorArchitecture = Wow32 CultureFallBacks = en-US; en ManifestPath = D: \ Test \ Qt \ 4.2.2 \ Bin \ QtGuid4.dll AssemblyDirectory = D: \ Test \ Qt \ 4.2.2 \ Bin \

--------------- ИНФОРМАЦИЯ: Файл манифеста D: \ Test \ Qt \ 4.2.2 \ bin \ QtGuid4.dll. ИНФОРМАЦИЯ: Манифест Определение (ноль). ИНФОРМАЦИЯ: Ссылка: Microsoft.VC80.DebugCRT, processorArchitecture = "x86" Тип = "win32", версия = "8.0.50608.0" ИНФОРМАЦИЯ: Разрешающая ссылка Microsoft.VC80.DebugCRT, processorArchitecture = "x86" "win32", версия = "8.0.50608.0". ИНФОРМАЦИЯ: Разрешающая ссылка для Процессор Архитектура WOW64. ИНФОРМАЦИЯ: Разрешающая ссылка на культуру Нейтральная. ИНФОРМАЦИЯ: Применение привязки Политика. ИНФОРМАЦИЯ: Политика издателя не найдена. ИНФОРМАЦИЯ: Перенаправление политики привязки не найдено. ИНФОРМАЦИЯ: Начать сборку зондирования. ИНФОРМАЦИЯ: Не нашел сборки в WinSxS. ИНФОРМАЦИЯ: Попытка проверить манифест в C: \ Windows \ assembly \ GAC_32 \ Microsoft.VC80.DebugCRT \ 8.0.50608.0__1fc8b3b9a1e18e3b \ Microsoft.VC80.DebugCRT.DLL. ИНФОРМАЦИЯ: Не нашел манифест для культуры Нейтральный. ИНФОРМАЦИЯ: Окончание сборки зондирования. ИНФОРМАЦИЯ: Разрешающая ссылка для ProcessorArchitecture x86. ИНФОРМАЦИЯ: Разрешающая ссылка на культуру Нейтральная. ИНФОРМАЦИЯ: Применение привязки Политика. ИНФОРМАЦИЯ: Политика издателя не найдена. ИНФОРМАЦИЯ: Перенаправление политики привязки не найдено. ИНФОРМАЦИЯ: Начать сборку зондирования. ИНФОРМАЦИЯ: Не нашел сборки в WinSxS. ИНФОРМАЦИЯ: Попытка проверить манифест в C: \ Windows \ assembly \ GAC_32 \ Microsoft.VC80.DebugCRT \ 8.0.50608.0__1fc8b3b9a1e18e3b \ Microsoft.VC80.DebugCRT.DLL. ИНФОРМАЦИЯ: Попытка проверить манифест в D: \ Test \ Qt \ 4.2.2 \ bin \ Microsoft.VC80.DebugCRT.DLL. ИНФОРМАЦИЯ: Попытка проверить манифест в D: \ Test \ Qt \ 4.2.2 \ bin \ Microsoft.VC80.DebugCRT.MANIFEST. ИНФОРМАЦИЯ: Попытка проверить манифест в D: \ Test \ Qt \ 4.2.2 \ bin \ Microsoft.VC80.DebugCRT \ Microsoft.VC80.DebugCRT.DLL. ИНФОРМАЦИЯ: Попытка проверить манифест в D: \ Test \ Qt \ 4.2.2 \ bin \ Microsoft.VC80.DebugCRT \ Microsoft.VC80.DebugCRT.MANIFEST. ИНФОРМАЦИЯ: Не нашел манифест для культуры Нейтральный. ИНФОРМАЦИЯ: Окончание сборки зондирования. ОШИБКА: не удается разрешить ссылка Microsoft.VC80.DebugCRT, processorArchitecture = "x86", publicKeyToken = "1fc8b3b9a1e18e3b", type = "win32", версия = "8.0.50608.0".

Извините за длину этого сообщения, но я подумал, что это может пробудить некоторые воспоминания. Это тот случай, когда у него не было Visual C ++ 2005 (я полагаю, именно отсюда и появился VC80) библиотеки C времени выполнения? Если да, может ли он скачать пакет распространения VC ++ и установить его, и все будет хорошо тогда? Или это совсем другая проблема?

Ответы [ 2 ]

7 голосов
/ 02 марта 2010

Если у вашего друга не установлен VS2005, у него не будет библиотек времени выполнения отладки. Они не являются частью распространяемых сред выполнения, и IIRC, Microsoft запрещает вам распространять их самостоятельно, поэтому для их получения необходимо установить VS2005.

Я бы предложил, чтобы он восстановил затронутую библиотеку, если это возможно; Я смутно припоминаю, что в Интернете есть несколько статей о том, как восстановить GPL QT с помощью Visual Studio, которые, я считаю, официально не поддерживаются.

Смешение сред выполнения C ++ требует большой осторожности, и вы можете попасть в довольно неприятную ловушку, если не поймете все правильно. Если перестраивать все библиотеки с VS2010 не вариант, ваш друг должен будет владеть VS2005. Возможно, стоит проверить, предлагает ли MS Express Express Edition VS2005 для загрузки.

1 голос
/ 10 августа 2012

Вы могли бы также сделать ниже: LOL

Если вы запускаете приложение в режиме Windows 7 X64, в котором используется целевой объект X64, вам необходимо установить следующий распространяемый пакет X64 SP1

http://www.microsoft.com/download/en/details.aspx?id=2092

Примечание. Файл манифеста должен измениться на processorArchitecture = X64 и type = "win64"

Если вы создаете свое приложение с X86 (32-битный режим), который работает поверх слоя WOW64, вы должны установить распространяемый пакет X86 SP1

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=5582

...