Create library archive from dependency walker?

560 Views Asked by At

A little background: I am creating a QT application based on shared library. I have to distribute the same. I have quite a few dlls to share and was using the tool dependency walker. I did a complete profiling of my QT application and Dependency walker rightly identified all the shaed libraries.

Now my question: Since dependency walker knows the path of all the dlls, is there any option to make a bundle by asking dependency walker to copy all the dlls to a folder or so. I did some research in google and did not find any.?

Could anybody kindly please guide me for the same or is there any other tool to do the same?

2

There are 2 best solutions below

0
On

Here are my thoughts and ramblings on the subject:

I haven't heard of one before, but the dependency walker does list EVERYTHING that the application accesses, and a large number of them don't need to be deployed.

Chances are there aren't really that many dependencies. Most of the windows api libraries should not be copied.

You may need to install one of the vscred packages, such as if you built it with MSVS 2010 to a 32 bit binary, you probably need to run the MSVS C++ Redistributables 2010 x86 installer on the client machine.

But now when you are figuring out how to get all those things that you have in your path accessible on the new client machine here are some things to keep in mind:

Knowing how the windows search order helps.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx#search_order_for_desktop_applications

Also knowing how Qt finds its own libraries and plugins helps.

http://qt-project.org/doc/qt-4.8/deployment-windows.html

Besides that, you will need to make your own folder structure, and copy the dependencies.

NSIS does installers. There are also other install systems out there, for deploying your application. You can also use 7zip to make a self extracting zip, and give it a location to dump its contents.

Hope that helps.

0
On

For QT Applications you can use QT Deploy Tool windeployqt which comes with QT and sits in QTDIR/bin/windeployqt. It scans your exe file and finds the QT dependcies for a an selfcontained deployment.