How to package an app for deployment on a friend's computer

Hello all at the list,

I am encountering a vexatious situation for which I would greatly
appreciate advice. It is this:

I am successfully compiling and running an application on my vista
computer, using the mingw compiler, operated from within cygwin. The
libraries linked into the application are opengl (gl.h) the gl
utilities (glu.h), SDL (SDL.h) and SDL_image (SDL_image.h), along with
some very standard C libraries. This program runs and exits very
smoothly on my vista machine, the same one where I compiled it.

When I try to give the program to a friend, however, with a whole slew
of DLLs (SDL.dll, SDL_image.dll, libpng.dll and all the ones
libpng.dll depends on), he is unable to run the application. It begins
execution then crashes.

Back on my machine, I tried putting all the files I gave him into a
directory all by themselves. I am able to run the application. This
means to me that the executable is finding the DLLs it needs, while on
my friend’s computer, it is not.

Does someone have an idea how I can make a list of all the DLLs I need
to provide my friend? I guess what I have in mind is an equivalent of
linux’s ldd program, which lists the object code libraries that an
executable needs.

Any further suggestions would be immensely appreciated.

Thanks!

Christian L?ger

You could try using the dependancy walker that comes with visual
studio to determine what dlls you need.

It’s called depends.exe and lives somewhere under the installationg
directory of VS. If you don’t have VS, you can probably find a
download somewhere of it online.

-David CarriggOn Jun 23, 2009, at 9:22 PM, Christian Leger <chrism.leger at gmail.com> wrote:

Hello all at the list,

I am encountering a vexatious situation for which I would greatly
appreciate advice. It is this:

I am successfully compiling and running an application on my vista
computer, using the mingw compiler, operated from within cygwin. The
libraries linked into the application are opengl (gl.h) the gl
utilities (glu.h), SDL (SDL.h) and SDL_image (SDL_image.h), along with
some very standard C libraries. This program runs and exits very
smoothly on my vista machine, the same one where I compiled it.

When I try to give the program to a friend, however, with a whole slew
of DLLs (SDL.dll, SDL_image.dll, libpng.dll and all the ones
libpng.dll depends on), he is unable to run the application. It begins
execution then crashes.

Back on my machine, I tried putting all the files I gave him into a
directory all by themselves. I am able to run the application. This
means to me that the executable is finding the DLLs it needs, while on
my friend’s computer, it is not.

Does someone have an idea how I can make a list of all the DLLs I need
to provide my friend? I guess what I have in mind is an equivalent of
linux’s ldd program, which lists the object code libraries that an
executable needs.

Any further suggestions would be immensely appreciated.

Thanks!

Christian L?ger


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

El Mi?rcoles 24 Junio 2009ES 06:41:59 David Carrigg escribi?:

If you don’t have VS, you can probably find a ?
download somewhere of it online.

In fact it has its own homepage, http://dependencywalker.com/