<div dir="ltr">I just tried your '-3' version. It has problems.<div><br></div>1: VisualD installer still asks where you installed DMD; it should be able to know this since it's being invoked by the DMD installer. I think that should be fixed.<br>
<div>2: gcstub64.obj and phobos64.lib are still in D/dmd2/windows/lib. They should be moved to lib64/</div><div>3: sc.ini contains: LIB="%@P%\..\lib64";"%@P%\..\lib"   <- why is '../lib/' still present in [Environment64]? That should be removed, it can only lead to erroneous attempts to link the OMF libs. Rather have a "can't find lib" error, than a weird lib format error that most programmers won't understand.</div>
<div>4: It fails to find the Microsoft libs. Here is the relevant parts of my sc.ini as installed by the installer:</div><div><br></div><div><div>LIB="%@P%\..\lib64";"%@P%\..\lib"</div><div><br></div><div>
;;;; search path for C Runtime libraries</div><div>; the following lib path works with VS2008, VS2010, VS2012, VS2013</div><div>; prepending because 32-bit OMF versions can cause link.exe to fail</div><div>LIB="C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64";%LIB%</div>
<div><br></div><div>;;;; search path for Platform libraries</div><div>; the following lib path works with Windows SDK 6.x and 7.x</div><div>LIB="C:\Program Files (x86)\Windows Kits\8.0\lib\winv6.3\um\x64";%LIB%</div>
<div><br></div><div>; the following lib path works with Windows SDK 8.0 and 8.1</div><div>LIB="%WindowsSdkDir%Lib\win8\um\x64";%LIB%</div><div><br></div><div><br></div><div>I have VS2010 and VS2012 installed on a Win8 machine. I have libs in these locations:</div>
<div><br></div><div class="gmail_extra">C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64  <- this one seems to be unknown to the installer. These libs should be used in conjunction with VS2010.<br></div><div class="gmail_extra">
C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64  <- the installer refers to %WindowsSdkDir%, which is not present on my system. Use the absolute path instead? These libs are to use used in conjunction with VS2012.<br>
</div><div class="gmail_extra">C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64  <- runtime libs, how to pick which version? Prompt during installation?<br></div><div class="gmail_extra">C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64  <- runtime libs, how to pick which version? Prompt during installation?<br>
</div><div class="gmail_extra"><br></div><div class="gmail_extra">I should note that I think VisualD needs to do some work here too. VisualD should override the linker and lib paths, since it has more information.</div><div class="gmail_extra">
Ie, how does cmdline DMD choose which linker/runtime libs to use? Perhaps a prompt during installation? Choose the newest (appears to be the current behaviour).</div><div class="gmail_extra">Whereas VisualD will be running inside of an instance of either VS2010 or VS2012 (I use both, this is very common practise) on my machine, and it should configure the linker and lib paths appropriately for the version of VisualStudio currently in use when building, otherwise there will be link troubles against C/C++ libraries also being built in the same solution (yes, it's common to have C/C++ and D in the same solution).</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">For clarity, on my system, when using the VS2010 compiler, it should use these lib paths:</div><div class="gmail_extra">  runtime libs: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64</div>
<div class="gmail_extra">  windows libs: C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\x64    <- AFAIK, Microsoft SDKs is the old location, installed with VS2010 and earlier.</div><div class="gmail_extra"><br>
</div><div class="gmail_extra">When using the VS2012 compiler, it should use these paths:</div><div class="gmail_extra">  runtime libs: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64</div><div class="gmail_extra">
  windows libs: C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64    <- Windows Kits is the new location, by versions > VS2010 (AFAIK).</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div>
<div class="gmail_extra">The default installation of DMD using your new installer fails to link on my machine because %WindowsSdkDir% is not defined on my system, and since the 32bit dmd lib path is still present, it tries to link the OMF libs, and complains a lot.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">Elsewhere in the file, you detect VS2010LINKCMD, VS2013LINKCMD, etc. Why not also have a matching suite of VS2010LIBPATH="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64" and friends, and refer to them down the bottom as LIB=%VS2010LIBPATH%;%LIB%, along with LINKCMD64=%VS2010LINKCMD%.</div>
<div class="gmail_extra">Ie, detect versions of VS present, produce a VS20##LINKCMD and VS20##LIBPATH appropriately for each version in their little section, then at the bottom, assign the actual variables used by DMD to the version selected by the user when prompted during installation. The result of this is that sc.ini will be very easy to read and understand, and if the user later wants to switch to another VS version, it'll be obvious to change the reference to the VS20## variables.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra">My primary VS environment is VS2010, which is going to be wrong if the installer uses a 'prefer newest version' strategy.</div><div>
<br></div></div><div class="gmail_extra">Another question, why use LINKCMD64? Shouldn't it just be LINKCMD, since it's under the [Environment64] block? You're not using LIB64, or any others like that.</div><div class="gmail_extra">
<br></div><div class="gmail_extra"><div class="gmail_quote">On 16 October 2013 11:15, Brad Anderson <span dir="ltr"><<a href="mailto:eco@gnuk.net" target="_blank">eco@gnuk.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><div class="h5">On Tuesday, 15 October 2013 at 06:38:30 UTC, dnewbie wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
VS 2010 Express/Windows SDK 7.0:<br>
<br>
dmd -m64 hello.d<br>
Can't run 'c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\link.exe', check PATH<br>
<br>
with dmd-2.064-beta-new-sc.ini-2.<u></u>exe<br>
</blockquote>
<br></div></div>
I believe you need the 7.1 SDK.  7.0 does not come with the 64-bit toolset.  I'm not certain about the paths in an Express/7.1 setup.<br>
<br>
If you can give me the paths to:<br>
<br>
1. 64-bit link.exe<br>
2. 64-bit C Runtime libraries (in MSVC this is %VCINSTALLDIR%lib\amd64 but I'm not sure if that comes with Express or with the 7.1 SDK and is located somewhere in SDK's directory structure instead).<br>
<br>
I might be able to this working.<br>
</blockquote></div><br></div></div></div>