Release D 2.078.1

Rainer Schuetze r.sagitario at gmx.de
Wed Jan 31 19:09:03 UTC 2018



On 31/01/2018 16:58, Atila Neves wrote:
> On Thursday, 25 January 2018 at 20:11:54 UTC, Rainer Schuetze wrote:
>>
>>
>> On 25.01.2018 14:54, Atila Neves wrote:
>>> On Tuesday, 23 January 2018 at 15:16:02 UTC, Andre Pany wrote:
>>>> On Tuesday, 23 January 2018 at 13:08:35 UTC, 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.
>>>>
>>>> Did you call vcvarsall in the current dos box/PowerShell? It is a 
>>>> tool included with all visual studio variants.
>>>>
>>>> Kind regards
>>>> Andre
>>>
>>> I just ran into this today. With the dmd 2.077.1 Windows installer 
>>> things just work, and it's never necessary to call vcvarsall.bat to 
>>> build D code for 64-bit.
>>>
>>> Since dmd 2.078.0, with Visual Studio 2015, nothing works anymore, 
>>> and sc.ini doesn't seem to reference Visual Studio at all like it 
>>> used to.
>>>
>>> Atila
>>
>> Visual Studio is supposed to be detected by dmd now, either from the 
>> environment or from the registry.
>>
>> What errors do you get? Try running with -v to show the linker command 
>> line.
> 
> $ dub init
> $ dub build --arch=x86_64
> Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64.
> example ~master: building configuration "application"...
> Linking...
> LINK : fatal error LNK1104: cannot open file 'shell32.lib'
> 
> -v shows that it's linking like so:
> 
> C:\D\dmd2\windows\bin\dmd.exe 
> -of.dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D03E746CD\example.exe 
> .dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D03E746CD\example.obj 
> -m64 -g

Unfortunately, that is not dmds output of the linker command line, but 
dubs invocation of dmd. Just try "dmd -v -m64 test.d".

Does Arjan's suggestion help, i.e. are you working as a restricted user? 
Did you install VS for the current user only (not sure if that's 
actually possible)?

> 
> Should I file a bug for dmd or the installer? 

It's a dmd issue.

> Are 64-bit dub builds not 
> done by CI on Windows? This is pretty embarassing.

Every PR is tested against both VS2013 (auto-tester) and VS2015 (Appveyor).


More information about the Digitalmars-d-announce mailing list