![]() |
|
![]() |
| Having to recursively and iteratively hunt missing dependencies with ldd can be pretty tedious. So this seems like a good improvement. Will try it next time I get an obscure not found |
![]() |
| Note that that particular tool doesn't work very well for modern Windows versions anymore.
Use https://github.com/lucasg/Dependencies instead (even though that isn't exactly up-to-date either...) If you have Visual Studio installed (and have selected the 'x64/x86 build tools (latest)' in the installer), `dumpbin /dependents` from a VS Developer Command Prompt remains the most reliable option. |
![]() |
| What does "why a library is found or not" mean? It is either in the LD_LIBRARY_PATH or it isn't? The screenshot doesn't make it clear to me what this refers to. |
![]() |
| Not sure if it's a bug, but I get different libraries from ldd and libtree for the vim example (e.g. linux-vdso.so.1 appears top of the list on ldd but not at all on libtree) |
![]() |
| linux-vdso.so.1 isn't a real library you'll find anywhere in the file system and it's not referenced within the ELF file, so libtree doesn't know about it. Instead it is mapped into the address space of a newly started process automatically by the kernel. It's an optimization feature to avoid syscall overhead for function like gettimeofday. See https://man7.org/linux/man-pages/man7/vdso.7.html
|
![]() |
| i wrote a horrible little script to use ldd recursively on nixos to figure out what I need to include to run a closed source binary, will give this one a go if I ever try that again. |
![]() |
| The first suggestion under the `# Install` header is to use a prebuilt binary like:
https://github.com/haampie/libtree/releases/download/v3.1.1/... The only verification provided is a sha256sum provided in the README, there's no way to confirm what source code or compiler was used to produce the binary, and no way to verify the binary was produced by that github user / that the README sha256 I was served was untampered with. I would propose that the 'unsafe' curl method is in fact probably safer than the recommended-first choice in the README. |
This seems to actually manually parse the ELF file and recursively parse any dependencies.
Pretty cool.