Я запустил проект Qt C ++ в Visual Studio и получил "программа не может быть запущена, потому что QtCored4.dll" отсутствует - PullRequest
0 голосов
/ 05 января 2012

Я запускаю проект Qt C ++ в Visual Studio 2008 и получаю это сообщение об ошибке:

"The program can't start because QtCored.dll is missing from your computer. Try installing the program to fix this problem".

Затем я копирую: QtCored4.dll из C: \ Qt \ 4.8.0 \ bin в программу exe

Я снова запускаю, я получил:

"The program can't start because QtGuid4.dll is missing from your computer. Try installing the program to fix this problem".

Затем я копирую: QtGuid4.dll из C: \ Qt \ 4.8.0 \ bin в программу exe

Потом я снова запускаю, я получил:

"the application was unable to start correctly (0xc015002). Click OK to close the program.

Затем я проверяю Event Viewer, я вижу это:

Сбой генерации контекста активации для "D: \ rest \ rrpT.exe". зависимый сборочный Microsoft.VC80.DebugCRT, processorArchitecture = "x86", PublicKeyToken = "1fc8b3b9a1e18e3b", тип = "win32", версия = "8.0.50727.762" невозможно найти. Пожалуйста, используйте sxstrace.exe для подробной диагностики.

Прежде всего, это очень странно для меня, потому что я создаю и отлаживаю приложение на VS2008, но оно запрашивает файлы dll из VS2005. Затем я скопировал эти файлы из VS2005:

msvcm80d.dll - msvcp80d.dll - msvcr80d.dll

в папку с программой, но это все та же ошибка: (

И я думаю, что есть еще кое-что интересное:

Activation context generation failed for "C:\Bin\QtSolutions_PropertyBrowser-2.5d.dll". Dependent Assembly Microsoft.VC80.DebugCRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.762" could not be found. Please use sxstrace.exe for detailed diagnosis.

почему PropertyBrowser зависит от VS2005?

Есть идеи?

1 Ответ

1 голос
/ 05 января 2012

Похоже, ваша копия Qt была скомпилирована с VS2005, таким образом, она, вероятно, зависит от библиотек времени выполнения версии 8.Но ваше приложение построено с использованием VS2008 и, таким образом, зависит от библиотек времени выполнения версии 9.В общем случае вы не можете получить обе версии библиотек времени выполнения в одном процессе.VC ++ имеет тенденцию нарушать бинарную совместимость между основными версиями.

Вам необходимо перекомпилировать свои собственные копии библиотек Qt с VS2008 или разработать приложение с VS2005.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...