dmd64 on Windows: how?
Ivan Kazmenko
gassa at mail.ru
Sat Aug 11 19:50:30 UTC 2018
Well, I tried all your suggestions.
(Actually re-tried a few times.)
Thanks, Laurent and Kagamin!
On Friday, 10 August 2018 at 14:47:04 UTC, Laurent Tréguier wrote:
> Did you have a look at the wiki ? It looks like the image shows
> what needs to be installed:
> https://wiki.dlang.org/Installing_DMD#Installing_the_Microsoft_toolchain
This was most close to solving my problem. Thanks!
I've installed the components shown in wiki image: v141 tools and
the SDKs.
The sc.ini information in the wiki looks outdated.
At least the sc.ini from the .7z archive is much cleaner than it
used to be.
The whole 64-bit section looks like this:
~~~~~
[Environment64]
LIB=%@P%\..\lib64
; needed to avoid COMDAT folding (bugzilla 10664)
DFLAGS=%DFLAGS% -L/OPT:NOICF
~~~~~
So I proceeded with the wiki instructions:
to find and run a 64-bit Visual Studio command prompt,
to ask the environment variables from there.
And Visual Studio 2017 brings new tricky paths to handle.
Here is how my sc.ini 64-bit section looks now, when everything
seems to work:
~~~~~
[Environment64]
LIB=%@P%\..\lib64
; needed to avoid COMDAT folding (bugzilla 10664)
DFLAGS=%DFLAGS% -L/OPT:NOICF
; here are the actual paths
VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\
WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
UniversalCRTSdkDir=C:\Program Files (x86)\Windows Kits\10\
UCRTVersion=10.0.17134.0
; here is the actual version
LINKCMD=%VCINSTALLDIR%\Tools\MSVC\14.14.26428\bin\HostX64\x64\link.exe
; needed with /DEBUG to find mspdb*.dll (only for VS2012 or later)
PATH=%PATH%;%VCINSTALLDIR%\bin\HostX64\x64
~~~~~
Specifically, LINKCMD part deviates from the instructions.
The linker is now buried deeper into
\Tools\MSVC\14.14.26428\bin\HostX64\x64\.
Yep, that contains a version number too, which may change with
each update.
Meanwhile, the tutorial suggests just the following:
LINKCMD=%VCINSTALLDIR%\bin\x86_amd64\link.exe
Anyway, now 64-bit linking seems to be working, so I'll stop
digging.
Ivan Kazmenko.
More information about the Digitalmars-d-learn
mailing list