On 23.01.2018 14:08, thedeemon wrote:
On Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:
Glad to announce D 2.078.1.


The Windows 7z archive version now has much simpler sc.ini, in fact too simple.
With Visual C++ 2015 x64 Native Build Tools now trying to run
dmd -m64 hi.d
I get
LINK : fatal error LNK1104: cannot open file 'libucrt.lib'
Error: linker exited with status 1104

So I needed to edit sc.ini and add back
LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64"
to the [Environment64] section.

Then it went just as 2.078.0 - still missing legacy_stdio_definitions.lib that I need to add manually in the command line.

The UCRT library path and legacy_stdio_definitions.lib should have been detected automatically.

I suspect that the Build Tools don't set the environment variable VisualStudioVersion (why should they?) which is used to detect whether the UCRT library path and legacy_stdio_definitions.lib are needed.

This PR https://github.com/dlang/dmd/pull/7500 would have fixed that by changing the detection to the existence of legacy_stdio_definitions.lib in the VC library path. Unfortunately it didn't make it into the release. (The PR contains other stuff, too, that was not meant to go into a .1 release.)

(Having VS installed would help, too, as it is also detected without the environment set.)

Reply via email to