2009-03-04 2 views
3

Microsoft Visual Studio"Невозможно запустить программу" (Отладка сборки)

Не удается запустить программу 'theprogram.exe'.

Это приложение не смогло начать , поскольку конфигурация приложения неверна. Просмотрите файл манифеста для возможных ошибок. Повторная установка приложения может решить эту проблему. Для более подробную информацию см. В журнале событий приложений .

OK

Программа под вопросом является проект C++, не MFC, не AFX, используемые библиотеки не являются: opengl32.lib glu32.lib SDL.lib sdlmain.lib плюс предварительно построенный libboost_signals-vc80-mt-gd-1_37.lib из BoostPro вычислений.

Программа начинается нормально в версиях Release, но в Debug я получаю вышеупомянутое сообщение об ошибке, а также процесс зомби, прикрепленный к отладчику, который я не могу убить.

файлы манифеста для отладочных:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity> 
    </dependentAssembly> 
    </dependency> 
</assembly> 

и сборки выпуска:

<?xml version='1.0' encoding='UTF-8' standalone='yes'?> 
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50608.0' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
    </dependency> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> 
    </dependentAssembly> 
    </dependency> 
</assembly> 

Dependency Walker:

Error: The Side-by-Side configuration information for "c:\prog\opengl guis\gg-0.7.0\debug\TUTORIAL.EXE" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001). 
Error: At least one required implicit or forwarded dependency was not found. 
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module. 
Error: Modules with different CPU types were found. 
Warning: At least one delay-load dependency module was not found. 
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module. 

библиотеки DLL:

DEVIL.DLL 
ILU.DLL 
MSVCP80D.DLL 
MSVCR80D.DLL 
SDL.DLL 
DWMAPI.DLL 
ADVAPI32.DLL 
DCIMAN32.DLL 
DDRAW.DLL 
GDI32.DLL 
GLU32.DLL 
KERNEL32.DLL 
MSVCRT.DLL 
NTDLL.DLL 
OPENGL32.DLL 
RPCRT4.DLL 
SECUR32.DLL 
USER32.DLL 
ACTIVEDS.DLL 
ADSLDPC.DLL 
ADVPACK.DLL 
APPHELP.DLL 
ATL.DLL 
AUTHZ.DLL 
BROWSEUI.DLL 
CABINET.DLL 
CDFVIEW.DLL 
CERTCLI.DLL 
CFGMGR32.DLL 
CLBCATQ.DLL 
CLUSAPI.DLL 
COMCTL32.DLL 
COMDLG32.DLL 
COMRES.DLL 
CREDUI.DLL 
CRYPT32.DLL 
CRYPTUI.DLL 
CSCDLL.DLL 
DBGHELP.DLL 
DEVMGR.DLL 
DHCPCSVC.DLL 
DNSAPI.DLL 
DUSER.DLL 
EFSADU.DLL 
ESENT.DLL 
GDIPLUS.DLL 
HLINK.DLL 
HNETCFG.DLL 
IEFRAME.DLL 
IERTUTIL.DLL 
IEUI.DLL 
IMAGEHLP.DLL 
IMGUTIL.DLL 
IMM32.DLL 
INETCOMM.DLL 
IPHLPAPI.DLL 
LINKINFO.DLL 
LZ32.DLL 
MFC42U.DLL 
MLANG.DLL 
MOBSYNC.DLL 
MPR.DLL 
MPRAPI.DLL 
MPRUI.DLL 
MSASN1.DLL 
MSGINA.DLL 
MSHTML.DLL 
MSI.DLL 
MSIMG32.DLL 
MSLS31.DLL 
MSOERT2.DLL 
MSRATING.DLL 
MSSIGN32.DLL 
MSVCP60.DLL 
MSWSOCK.DLL 
NETAPI32.DLL 
NETCFGX.DLL 
NETMAN.DLL 
NETPLWIZ.DLL 
NETRAP.DLL 
NETSHELL.DLL 
NETUI0.DLL 
NETUI1.DLL 
NETUI2.DLL 
NORMALIZ.DLL 
NTDSAPI.DLL 
NTLANMAN.DLL 
ODBC32.DLL 
OLE32.DLL 
OLEACC.DLL 
OLEAUT32.DLL 
OLEDLG.DLL 
POWRPROF.DLL 
PRINTUI.DLL 
PSAPI.DLL 
QUERY.DLL 
RASAPI32.DLL 
RASDLG.DLL 
RASMAN.DLL 
REGAPI.DLL 
RTUTILS.DLL 
SAMLIB.DLL 
SCECLI.DLL 
SETUPAPI.DLL 
SHDOCVW.DLL 
SHELL32.DLL 
SHLWAPI.DLL 
SHSVCS.DLL 
TAPI32.DLL 
URLMON.DLL 
USERENV.DLL 
USP10.DLL 
UTILDLL.DLL 
UXTHEME.DLL 
VERSION.DLL 
W32TOPL.DLL 
WINHTTP.DLL 
WININET.DLL 
WINIPSEC.DLL 
WINMM.DLL 
WINSCARD.DLL 
WINSPOOL.DRV 
WINSTA.DLL 
WINTRUST.DLL 
WLDAP32.DLL 
WMI.DLL 
WS2_32.DLL 
WS2HELP.DLL 
WSOCK32.DLL 
WTSAPI32.DLL 
WZCDLG.DLL 
WZCSAPI.DLL 
WZCSVC.DLL 
MSVCR80.DLL 
TUTORIAL.EXE 

линкер вызов:

/OUT:"C:\prog\OpenGL GUIS\GG-0.7.0\Debug\tutorial.exe" /INCREMENTAL /NOLOGO /LIBPATH:"C:\prog\SDL-1.2.13\lib" /LIBPATH:"C:\prog\contrib\lib_win32" /LIBPATH:"C:\prog\boost\boost_1_37\lib" /MANIFEST /MANIFESTFILE:"Debug\tutorial.exe.intermediate.manifest" /NODEFAULTLIB:"LIBC.LIB" /DEBUG /PDB:"c:\prog\OpenGL GUIS\GG-0.7.0\Debug\tutorial.pdb" /SUBSYSTEM:CONSOLE /MACHINE:X86 /ERRORREPORT:PROMPT opengl32.lib glu32.lib SDL.lib sdlmain.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ".\debug\gg.lib" 

ответ

3

Похоже отладочная сборка связана как против отладки и выпуска автономной работы, которые были бы очень плохо - вы не включили ни в списке библиотек вы ссылаетесь против - может быть стоит проверить хотя

Edit: может быть стоит проверить для любых #pragma comment (lib...) заявлений, которые могут заставить линкер включить дополнительную библиотеку, в результате чего потенциальные конфликты (см также documentation on MSDN)

+0

Я только что проверил проекты решения, и хотя одна из них была многопотоковой DLL вместо многопоточной DLL DLL, я исправил это, но ошибка сохраняется. – heeen

+0

Вы также проверили вызов компоновщика, чтобы проверить, что библиотеки ожидаются? –

+0

добавление командной строки линкера к вопросу. – heeen

0

Попробуйте посмотреть в журнал приложений, например, сообщения об ошибках. Я также попытался бы использовать такой инструмент, как Dependency walker, чтобы найти возможную проблему с отсутствием/неправильной DLL.

+0

добавлен вывод зависимостей зависимостей к вопросу. – heeen

+0

Я думаю, вы должны быть в состоянии видеть, какие DLL (ей) вызывает проблемы. мне непонятно, из выведенного вами результата. –

0

Это происходит со мной все время! Вот небольшая хитрость, которую я обнаружил, чтобы исправить это:

  1. Перейти к построй> Очистить решение "
  2. в«обозревателе решений»щелкните правой кнопкой мыши свой проект и перейти к свойствам
  3. Убедитесь, что конфигурация в верхнем левом углу находится «Отладка»
  4. Перейдите к «Linker> System> SubSystem» и измените его на «Не задано». (Если он уже установлен в «Не задан», измените его на «Консоль».)
  5. Восстановите свою программу, если она не скомпилируется, это нормально.
  6. Вернитесь к 'Linker> System> SubSystem' и измените его на то, что было ранее, и перекомпилируйте.

Теперь, почему это работает, я не уверен.

+0

извините, не работает. – heeen

+0

Такая же проблема, но и не работала для меня. – metal

1

У меня была очень похожая проблема с Visual Studio 2005 C++ Express. Установив платформу SDK, положите DLL MSVCR80D в нужное место, но VS, похоже, не нашел ее.

Установка SP1 для VS Express и перезагрузка решили для меня проблему.

Получить его here

1

Это звучит похоже на проблемы обсуждались в этом Boost.Build thread. Возможные решения включают в себя обеспечение того, чтобы вы выбрали установку всех вкусов во время выполнения, при установке Visual Studio и с помощью инструмента sxstrace.exe, чтобы дать более подробную диагностику. Однако в этом случае ничего не работало, пока Visual Studio не была переустановлена ​​с нуля.

5

Если вы щелкните правой кнопкой мыши по решению и перейдите в раздел «Свойства», вам нужно выбрать «Единый запуск проекта» и выбрать проект хостинга. Это сработало для меня.

0

Была ли та же проблема запущена приложение, которое было скомпилировано в конфигурации отладки. Я связывался с внешней библиотекой, которая была связана с версией Release библиотеки времени выполнения, поэтому я закончил работу с моментами выпуска и отладки в том же процессе. Поскольку у меня не было версии Debug этой внешней библиотеки, мне пришлось придерживаться Release build, громоздкой для отладки, но, тем не менее, работоспособной.

0

Похоже, тот же вопрос, как описано в этой статье: http://tmoniuszko.blogspot.com/2011/11/installing-service-pack-1-for-visual.html

+0

Хотя это теоретически может ответить на вопрос, [было бы предпочтительно] (http://meta.stackexchange.com/q/8259) включить сюда основные части ответа и предоставить ссылку для справки. – Adi

0

Выполните следующие действия:

  1. Сохранить проект в новой папке.
  2. Файл; Переместите source.cpp в проект.
  3. Строительство.
  4. Run.