Release mode fails to execute
I'm having trouble building a release version of my program. I open the project in Visual Studio 2010 Express, change it to Release configuration, make sure it's dependent on the release versions of all .libs I'm using, then build. The resulting .exe works fine on computers that have the Windows SDK installed, but when I try to run it on computers without the SDK that just have the C++ 2010 Redistributable installed, nothing happens. If I have the Taskmanager up to the processes tab, I can see my .exe appear for a few seconds, then disappear. This happens even if I run it with Admin priviledges.
When I look at my release .exe in Dependency Walker, it seems to be relying entirely on release versions of .dlls. I do get some errors when I import it, though:
Code:
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.
I'm not sure if those errors could result in the kind of problem I'm seeing or not. I'm using Qt 4.8. I've never deployed a full GUI application with multiple libs and everything, so I'm sure I got something wrong; I just don't understand what, or why the .exe is acting like it is. What is going on?
Re: Release mode fails to execute
Did you deploy Qt libraries to the target system?
Re: Release mode fails to execute
I included the necessary .dlls with the .exe, is that what you mean by deploy? The computer I was testing it on and the one I was developing it on both run Windows 7 64-bit.
Re: Release mode fails to execute
Which dlls did you include? Where exactly did you copy them from?
Re: Release mode fails to execute
I included QtCore4.dll, QtGui4.dll, and QtOpenGL4.dll from C:\Qt\4.8.3opensource\bin. 4.8.3opensource is where I installed Qt.
Re: Release mode fails to execute
Did you verify that all their dependencies are fulfilled on the target machine? Try running dependency walker against them (or the application binary) on the target machine and see which dependencies are missing.
Re: Release mode fails to execute
Huh. Dependency Walker does claim some dependencies are missing. It's saying it can't find MSVCP100.dll, MSVCR100.dll, and IESHIMS.dll. However, those dlls are installed on the machine, the MSVC ones in SysWOW64 and IEShims in Program Files(x86)/Internet Explorer. I copied them to System32 and restarted Dependency Walker. This time it didn't complainthat those .dlls were missing, but the .exe still didn't run.
I looked at it with dependency walker on a machine with the Window SKD installed, and it said that IEShims.dll was missing on that machine, even though the .exe did run properly. What's going on? :confused: