www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Do users need to install VS runtime redistributable if linking with

reply ponce <contact gam3sfrommars.fr> writes:
All in the title.

DMD 64-bit links with the VS linker.
Do users need to install the VS redistributable libraries?
Sep 21 2015
parent reply thedeemon <dlang thedeemon.com> writes:
On Monday, 21 September 2015 at 15:00:24 UTC, ponce wrote:
 All in the title.

 DMD 64-bit links with the VS linker.
 Do users need to install the VS redistributable libraries?
I think they don't. Generated .exe seems to depend only on kernel32.dll and shell32.dll, i.e. things users already have.
Sep 22 2015
next sibling parent ponce <contact gam3sfrommars.fr> writes:
On Tuesday, 22 September 2015 at 09:38:12 UTC, thedeemon wrote:
 I think they don't.
 Generated .exe seems to depend only on kernel32.dll and 
 shell32.dll, i.e. things users already have.
Great then.
Sep 22 2015
prev sibling parent reply ponce <contact gam3sfrommars.fr> writes:
On Tuesday, 22 September 2015 at 09:38:12 UTC, thedeemon wrote:
 On Monday, 21 September 2015 at 15:00:24 UTC, ponce wrote:
 All in the title.

 DMD 64-bit links with the VS linker.
 Do users need to install the VS redistributable libraries?
I think they don't. Generated .exe seems to depend only on kernel32.dll and shell32.dll, i.e. things users already have.
So I've released software with LDC 0.16.0-alpha4 Win64, and one user send me that http://i.imgur.com/xbU1VeS.png I thought it was only used for linking :( Does it also affect executable made with DMD and linked with MS linker?
Sep 28 2015
next sibling parent reply Sebastiaan Koppe <mail skoppe.eu> writes:
On Monday, 28 September 2015 at 15:10:25 UTC, ponce wrote:
 On Tuesday, 22 September 2015 at 09:38:12 UTC, thedeemon wrote:
 On Monday, 21 September 2015 at 15:00:24 UTC, ponce wrote:
 All in the title.

 DMD 64-bit links with the VS linker.
 Do users need to install the VS redistributable libraries?
I think they don't. Generated .exe seems to depend only on kernel32.dll and shell32.dll, i.e. things users already have.
So I've released software with LDC 0.16.0-alpha4 Win64, and one user send me that http://i.imgur.com/xbU1VeS.png I thought it was only used for linking :( Does it also affect executable made with DMD and linked with MS linker?
Basically you executable is bound to whatever runtime you had installed when linking the thing. If those aren't installed on the end user's machine, you get that error. Pretty neat huh? I had the same problem trying your Vibrant game. I could not find out which redistributable I had to install (what version of VS did you have installed / on what version of windows are you?). I decided to install them all, but couldn't install the one for 2015 (due to Windows6.1-KB2999226-x64.msu). After trying some workarounds I gave up. I am on windows 7 by the way.
Sep 28 2015
next sibling parent reply ponce <contact gam3sfrommars.fr> writes:
On Monday, 28 September 2015 at 16:01:54 UTC, Sebastiaan Koppe 
wrote:
 On Monday, 28 September 2015 at 15:10:25 UTC, ponce wrote:
 On Tuesday, 22 September 2015 at 09:38:12 UTC, thedeemon wrote:
 On Monday, 21 September 2015 at 15:00:24 UTC, ponce wrote:
 All in the title.

 DMD 64-bit links with the VS linker.
 Do users need to install the VS redistributable libraries?
I think they don't. Generated .exe seems to depend only on kernel32.dll and shell32.dll, i.e. things users already have.
So I've released software with LDC 0.16.0-alpha4 Win64, and one user send me that http://i.imgur.com/xbU1VeS.png I thought it was only used for linking :( Does it also affect executable made with DMD and linked with MS linker?
Basically you executable is bound to whatever runtime you had installed when linking the thing. If those aren't installed on the end user's machine, you get that error. Pretty neat huh?
OK, but why does that need to happen? I don't get why does linking with MS linker implies a runtime dependency. I thought we would be left out of these sort of problems when using D :(
Sep 28 2015
next sibling parent reply Dicebot <public dicebot.lv> writes:
Maybe LDC uses dynamic linking by default and DMD static one, 
same as on Linux?
Sep 28 2015
parent kinke <noone nowhere.com> writes:
 Maybe LDC uses dynamic linking by default and DMD static one, 
 same as on Linux?
Yes, LDC does use dynamic linking by default (as MSVC iirc). Static linking can be enabled by providing the -DLINK_WITH_MSVCRT=OFF switch to the CMake command.
 OK, but why does that need to happen? I don't get why does 
 linking with MS linker
 implies a runtime dependency.
 I thought we would be left out of these sort of problems when 
 using D :(
druntime is a layer on top of a C runtime, as redoing all of that low-level and platform-specific stuff in D doesn't make a lot of sense. Then it's just a choice of linking dynamically or statically against it. Doesn't have anything to do with the used linker.
Sep 28 2015
prev sibling parent Kagamin <spam here.lot> writes:
On Monday, 28 September 2015 at 16:36:47 UTC, ponce wrote:
 OK, but why does that need to happen? I don't get why does 
 linking with MS linker implies a runtime dependency.

 I thought we would be left out of these sort of problems when 
 using D :(
About universal CRT: http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx https://support.microsoft.com/en-us/kb/2999226
Sep 29 2015
prev sibling parent reply ponce <contact gam3sfrommars.fr> writes:
On Monday, 28 September 2015 at 16:01:54 UTC, Sebastiaan Koppe 
wrote:
 I could not find out which redistributable I had to install 
 (what version of VS did you have installed / on what version of 
 windows are you?). I decided to install them all, but couldn't 
 install the one for 2015 (due to Windows6.1-KB2999226-x64.msu). 
 After trying some workarounds I gave up.
You need the VC++ 2015 64-bit redistributable.
Sep 29 2015
parent reply Sebastiaan Koppe <mail skoppe.eu> writes:
On Tuesday, 29 September 2015 at 09:15:29 UTC, ponce wrote:
 On Monday, 28 September 2015 at 16:01:54 UTC, Sebastiaan Koppe 
 wrote:
 I could not find out which redistributable I had to install 
 (what version of VS did you have installed / on what version 
 of windows are you?). I decided to install them all, but 
 couldn't install the one for 2015 (due to 
 Windows6.1-KB2999226-x64.msu). After trying some workarounds I 
 gave up.
You need the VC++ 2015 64-bit redistributable.
Can you either link statically or try an older version of VC, one that is more likely to be found in the wild? (or does ldc require 2015?) I really want to try your game :)
Sep 29 2015
parent ponce <contact gam3sfrommars.fr> writes:
On Tuesday, 29 September 2015 at 09:44:58 UTC, Sebastiaan Koppe 
wrote:
 On Tuesday, 29 September 2015 at 09:15:29 UTC, ponce wrote:
 On Monday, 28 September 2015 at 16:01:54 UTC, Sebastiaan Koppe 
 wrote:
 I could not find out which redistributable I had to install 
 (what version of VS did you have installed / on what version 
 of windows are you?). I decided to install them all, but 
 couldn't install the one for 2015 (due to 
 Windows6.1-KB2999226-x64.msu). After trying some workarounds 
 I gave up.
You need the VC++ 2015 64-bit redistributable.
Can you either link statically or try an older version of VC, one that is more likely to be found in the wild? (or does ldc require 2015?)
No, not without rebuilding Phobos/druntime as it stands. https://github.com/ldc-developers/ldc/issues/1133
 I really want to try your game :)
Version 1.7 is still available and is compiled with DMD for 32-bit Windows. You can also clone the repo and type "dub": https://github.com/p0nce/Vibrant Given the general speed up with LDC, it would need more profiling/optimizing to get back to DMD. Maybe next release.
Sep 29 2015
prev sibling parent ponce <contact gam3sfrommars.fr> writes:
On Monday, 28 September 2015 at 15:10:25 UTC, ponce wrote:
 Does it also affect executable made with DMD and linked with MS 
 linker?
Just tested: no.
Sep 28 2015