View Single Post
Old 13th January 2019, 14:33   #2  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,904
Over the years there have been people who statically compile programmes and others that dynamically compile them.
By statically compiling an executable, you bind a specific version of a redistributable to your programme and you distribute it with your programme.
Unfortunately, though, every time an update comes out for the redistributable you used, you would have to re-compile and re-distribute your programme, which is actually annoying.
By dynamically compiling a programme, instead, you let Windows handle it, so the redistributable inside the system are used.
This way, you won't have to re-compile and re-distribute your programme every time as the redistributable will be updated by Microsoft Update / Windows Update.
In an ideal world, everybody would dynamically compile programmes and every user would have all the required versions of the redistributables installed and updated.
Sadly, that's not the case and I've seen systems without installs and other things complaining of programmes not working.
Besides, depending on the compiler used, you may need other version of the C++ Redistributable; for instance, ever since Intel Parallel Studio has been around, users need the Intel C++ Redistributable as well.
In other words, it's a bit of a mess, but I generally suggest people to install:

- Microsoft C++ Redistributable 2005 (x86 - x64)
- Microsoft C++ Redistributable 2008 (x86 - x64)
- Microsoft C++ Redistributable 2010 (x86 - x64)
- Microsoft C++ Redistributable 2012 (x86 - x64)
- Microsoft C++ Redistributable 2013 (x86 - x64)
- Microsoft C++ Redistributable 2015 (x86 - x64)
- Microsoft C++ Redistributable 2017 (x86 - x64)

(Actually, you don't need to install the 2015 one as the 2017 would uninstall it and replace it anyway).

- Intel C++ Redistributable 2019

(Actually, you don't need to install the old 2017 Intel C++ Redistributable 'cause the new one surperseeds the old one and uninstalls it automatically).

- .NET Framework 1.0
- .NET Framework 1.1
- .NET Framework 2.0
- .NET Framework 3.0
- .NET Framework 3.5
- .NET Framework 4.0
- .NET Framework 4.5
- .NET Framework 4.6
- .NET Framework 4.7
- .NET Framework 4.8

(Actually, if you have a recent OS like Windows 10 - or something newer than Windows XP - you can skip the first installs and go straight with the .NET Framework 4.8 'cause the former ones are already integrated in the system and the new 4.8 superseeds all the 4.x ones. As to XP, the latest .NET Framework supported is 4.0 Extended, so you gotta stick with that).

With all these installed, users can be pretty sure that they will be able to run pretty much anything that has been dynamically compiled.
As to me, I'm personally more prone to compile dynamically on my systems and share the executable with others.
Occasionally, people complained about it so if I have a bit of spare time, I re-compile statically and upload the statically compiled version as well.
FranceBB is offline   Reply With Quote