title: How to find out which files my program depend on?
body: <p>I often run into the problem when I create an installer for my program that I miss out some  files it depend on.</p>
  
  <p>On Windows:</p>
  
  <p>I often miss out some DLL's that are installed on my system. I usually test my installation by just moving the executable in a folder alone to see which DLL's it cry for. But it will use the DLL's it find on my system32 folder anyway - those DLL's maybe there in other users' system, maybe not.</p>
  
  <p>Other way I found that I open the EXE in a hex editor and search for the pattern '.DLL'. But dll's can depend on other dlls too.</p>
  
  <p>Is there a (preferably free) tool that can tell me what DLL's my program need? So I won't miss out anything.</p>
  
  <p>On Linux:</p>
  
  <p>Linuxes have a nice package management system. Making an installer in those systems means making a package for them. I can find out what .so (shared object) files my programs need. But how can I determine which package contains that .SO file so I can add that package as dependency when packaging? </p>