suve / copydeps Goto Github PK
View Code? Open in Web Editor NEWFind and copy all the .so / .dll files required by an executable
License: GNU General Public License v3.0
Find and copy all the .so / .dll files required by an executable
License: GNU General Public License v3.0
Currently, the tool uses hard-coded paths when trying to resolve the dependencies. It would be better to consult /etc/ld.so.conf
(and /etc/ld.so.conf.d/*
) to learn what paths are actually used by the system we're running on.
Either as a program option, or as a default, but the directory of the target executable could also be used for resolving .so
/ .dll
names.
It might be useful to have an option (--dryrun
?) for the program where no files are copied, and only the names of the dependencies (both the "bare" and resolved names) are printed.
Since filenames are case-insensitive on Windows, when trying to resolve dependencies (and also when checking them against the blacklist/whitelist), the name comparisons should also be done in a case-insensitive manner.
The program could produce coloured output when stdout/stderr are attached to the terminal (by using terminal escape codes).
Should this be implemented, a --colour
option could also be added to allow the user to override TTY auto-detection.
Right now copydeps
defaults to copying stuff to the current working directory, instead of the directory of the executable. This means that you basically have to write the full path twice. It would be a good idea to either change this default, or to add some option (--exedir
?) that allows to inform the program that it should copy files to the executable directory.
Hello,
I just built my first Rust tool that uses opencv. I'd like to distribute it to some friends but don't want them to get through the hassle of getting all the required .dll so your tool seems perfect to bundle the libraries with the .exe.
I installed copydeps via cargo install copydeps
and tried to run copydeps absolute_path_to_my.exe
.
I got the output :
copydeps: failed to resolve "MSVCP140.dll"
copydeps: failed to resolve "VCRUNTIME140.dll"
copydeps: failed to resolve "VCRUNTIME140_1.dll"
copydeps: failed to resolve "api-ms-win-crt-heap-l1-1-0.dll"
copydeps: failed to resolve "api-ms-win-crt-locale-l1-1-0.dll"
copydeps: failed to resolve "api-ms-win-crt-math-l1-1-0.dll"
copydeps: failed to resolve "api-ms-win-crt-runtime-l1-1-0.dll"
copydeps: failed to resolve "api-ms-win-crt-stdio-l1-1-0.dll"
copydeps: failed to resolve "api-ms-win-crt-string-l1-1-0.dll"
copydeps: failed to resolve "bcrypt.dll"
copydeps: failed to resolve "opencv_world470.dll"
when I use the dependency_runner
crate with the command deprun path_to_my.exe
I get the correct path to de dlls.
If i have to manually copy/paste paths to copydeps from deprun, it would be the same as copying them by hand. Do you have any idea of how to fix this issue?
It might be useful to have an option for the program which tells it not to overwrite .so
/ .dll
files already existing in the target directory.
How difficult do you think it would be to modify this to recursively search folders including executable directly and not only get dependencies for exe but dlls that are in that folder and subfolders as well for windows?
Windows dumpbin /dependents for example can do exe's and dll dependencies.
Currently (as of v.4.0
) the program needs to be installed before it can be used - trying to launch copydeps/copydeps.py
gives an error about copydeps
not being a valid package name.
Add a simple launcher/wrapper script to the main directory so people who don't want to deal with all the easy_install
bullshit have an easier time.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.