I often run into the problem when I create an installer for my program that I miss out some files it depend on.
On Windows:
I often miss out some D开发者_如何学运维LL'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.
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.
Is there a (preferably free) tool that can tell me what DLL's my program need? So I won't miss out anything.
On Linux:
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?
On Windows, what you're looking for is a tool called Dependency Walker, which tells you what DLLs an EXE (or another DLL) depends on.
On Linux, see Dependency resolution in Linux
精彩评论