Questions & Answers (Deployment)
Q:
My users complain about problems with missing DLLs when I deploy an application
built using Visual Studio 2005. What did I forget?
A:
In addition to the manifest file that deployed applications require, it is
also necessary to supply the user with the necessary Visual C++ run-time
libraries. This is usually done in one of two ways:
- By copying the entire Microsoft.VC80.CRT directory from deep within
your Visual Studio installation to the directory containing your application's
executable file.
- By getting the user to install the run-time libraries on their system.
The second option sounds easier for developers, but more work for the user.
Fortunately, you can deploy the Visual C++ Redistributable Package
alongside your application in the form of the vcredist_x86.exe,
vcredist_x64.exe, or vcredist_IA64.exe executable files. These can be
run to ensure that the necessary libraries are installed on systems based on
32-bit x86, 64-bit x86, or IA64 architectures, respectively.
Q:
My Qt application uses plugins but, when I deploy it, none of them are loaded.
Why can't it find them?
A:
By default, Qt applications look for plugins in the location of the user's
Qt installation. However, when applications are deployed in environments where
Qt is not installed separately, we need to look at some alternatives:
Although many developers often use these techniques successfully, a common
mistake is to forget to place plugins in the appropriate subdirectories on
the plugin path. For example, image format plugins should be placed in a
imageformats directory, SQL drivers in a sqldrivers directory, and so
on.
Further Reading
Deploying Qt Applications
http://doc.trolltech.com/4.3/deployment.html
How to Create Qt Plugins
http://doc.trolltech.com/4.3/plugins-howto.html