Release D 2.078.1
Atila Neves
atila.neves at gmail.com
Thu Feb 1 16:16:20 UTC 2018
On Wednesday, 31 January 2018 at 19:09:03 UTC, Rainer Schuetze
wrote:
>
>
> 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".
Sorry, I misunderstood what you meant. It's:
C:\Program Files (x86)\Microsoft Visual Studio
14.0\VC\bin\link.exe /NOLOGO app /OPT:NOICF
/LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio
14.0\VC\lib\amd64" /LIBPATH:"C:\Program Files (x86)\Windows
Kits\10\Lib\10.0.10240.0\ucrt\x64" legacy_stdio_definitions.lib
There are 3 shell32.lib files on my system, located at:
C:\Program Files (x86)\Windows
Kits\8.1\Lib\winv6.3\um\{arm,x64,x86}
Notice that it's similar to the path being used above. Given that
cl.exe doesn't have a problem running on my system I went and
looked at vcvarsall.bat expecting there to be checks for either
8.1 or 10. I was right, there's logic to figure it out.
It'd probably be easier to `executeShell("vcvarsall.bat")` than
trying to replicate the logic in dmd itself. It's bound to get it
wrong (as it has) and we don't have Microsoft's resources to test
backwards compatibility.
>
> 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)?
I've installed dmd 2.077.1 and dmd 2.078.1 now several times,
each time erasing the other. It's a regression.
>
>>
>> Should I file a bug for dmd or the installer?
>
> It's a dmd issue.
https://issues.dlang.org/show_bug.cgi?id=18352
More information about the Digitalmars-d-announce
mailing list