-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
What .dlls are needed for a Windows binary? #1407
Comments
Generally, yes. (E.g. zlib is not needed on Windows as it is included in |
For Windows 10, msvcr100.dll from VS C++ Redistributable 2010 appears to be sufficient for simple setups. On a related note, due to Windows' different and complicated methods of determining which dlls to load, it appears significantly more complex than necessary (at least compared to macos and various linux distributions) to ensure the appropriate dll is loaded and not some other file that happens to have the same name. Some details of these issues are touched upon here: https://github.com/numpy/numpy/wiki/windows-dll-notes After various false starts, I had some success with getting a side-by-side private assembly to work, which IIUC can ensure (or at least drastically increase the chance) that the specific dlls one wishes to have used by the executable to actually be used (instead of "already loaded" by the system ones, for example). In the current situation though, to follow this approach, IIUC, we must provide an external application manifest as well as an external assembly manifest, and this process appears to have some undocumented gotchas: From the perspective of debugging, deployment, and security, it would be nice to have the static compilation option. |
Are there any plans to include |
Please at least document the Visual C++ Redistributable deployment dependency in the getting started guide. Even the HelloWorld example doesn't run as-is on a vanilla Windows installation. For users new to GraalVM, who naively might think that it's "create a single executable and deploy anywhere", this is very surprising. This issue is 4.5 years old, yet the documentation still doesn't mention any deployment dependency. I created #7747 to do just this, only to have it closed after a very frustrating and time-consuming back and forth. |
If I'm compiling a binary on Windows 10 with GraalVM native, what .dlls are needed on other Windows 10 systems to be able to run this binary?
Does the
--static
option have any effect on this?In installing Visual Studio C++ 2010 redistributable sufficient? After some testing it seems so.
Also, if there are any open source projects already building Windows binaries for distribution, I'd be happy to take a peek!
We have been able to compile a Windows binary on Appveyor, but it doesn't work on Windows 10 systems:
https://github.com/borkdude/clj-kondo/blob/master/appveyor.yml
The text was updated successfully, but these errors were encountered: