3 ms·
DLLs are the same kind of file as ELF shared objects. Thing is that in Linux/BSD world they are indeed also commonly shared system-wide, on a package management
by floatboth 5y ago
DLLs are the same kind of file as ELF shared objects. Thing is that in Linux/BSD world they are indeed also commonly shared system-wide, on a package management level.
Bundling shared libraries is kinda the worst of both worlds: not getting any sharing between application (/system wide security patches) but not getting the performance benefits of static linking either. The only good thing is that you could manually replace e.g. a vulnerable version of a library inside this bundle.
And yeah… Flatpak/AppImage/snap distribution is kinda like that Windows-style one.
- hdhrnnrkrkf 5y agoBundling shared libraries is also used in big apps for faster build times and for more physical separation between modules. Arguably the final release version could be statically linked, but that could be subtly different than what the devs are using.
- liuliu 5y agoFor these cases, you can just use a modern build system (Bazel) and incremental linker (lld / gold).
- jayd16 5y agoNot everyone is in a position to vendor source for all their dependencies and use a new build system to solve a solved problem.
- jcelerier 5y agoI do the same with good ol' cmake, I have a "developer" preset which will build my app with clang, lld, PCH, split into small shared libraries. And a release preset where everything is statically linked