-
Notifications
You must be signed in to change notification settings - Fork 0
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
Binary Compatibility #2
Comments
There are some more things to keep in mind for windows. It is not only the architecture, but also the toolchain and redistributable version that is needed. So for example if you compile libraries with Visual Studio 2010, then you need to compile applications using them with VS2010 too. Now this can lead to quite some funky dependency hell. For example if you are compiling nuke plugins you have to use the VS version matching the nuke version you are targeting. So depending on the nuke version you need to use a different toolchain. Cheers, |
Good points! |
@instinct-vfx Does this only apply to Windows? What about Python extensions compiled with gcc version |
One of the issues about compiled software is its dependency on the platform in which is was compiled. E.g. software compiled on Windows will only work on Windows, and the same goes for Linux and OSX.
To make matters worse, different versions/distributions of a particular platform also introduces incompatibilities - most notably the numerous Linux distributions.
Looks like there's generally two methods to bundle software on every platform.
Each has their own pros and cons. On Windows, the option is typically to bundle all dependencies, so as to make each installation isolated from each other. The end result is independent software and easy installation/uninstallation that typically takes up more space.
On Linux (and OSX?) however, the opposite seems true - i.e. to only bundle the bare essentials and rely on external dependencies for normal functioning, with one argument being that you are able to update primarily security-related libraries without re-compiling the entire package. Such as when a flaw is found in SSL, only SSL can be updated and the software can remain the same whilst taking advantage of the updated library.
When security is of no concern, is minimal bundling merely an optimisation?
References
The text was updated successfully, but these errors were encountered: