Compiling with -m64 on Windows uses wrong link location

Rainer Schuetze via Digitalmars-d digitalmars-d at puremagic.com
Sat Nov 1 09:22:38 PDT 2014



On 01.11.2014 14:25, Josh wrote:
> I have Visual Studio 2012 and Windows SDK for Windows 8.1 installed. I
> then used the DMD installer, which appears to have correctly found them:
>
> ----------------------------------------------------------------------------
>
> ; Windows installer replaces the following lines with the actual paths
> VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\
> WindowsSdkDir=D:\Program Files (x86)\Windows Kits\8.1\
>
> ; Windows installer uncomments the version detected
> ;VC2013 LINKCMD=%VCINSTALLDIR%\bin\x86_amd64\link.exe
> LINKCMD=%VCINSTALLDIR%\bin\x86_amd64\link.exe
> ;VC2010 LINKCMD=%VCINSTALLDIR%\bin\amd64\link.exe
> ;VC2008 LINKCMD=%VCINSTALLDIR%\bin\amd64\link.exe
>
> ; needed with /DEBUG to find mspdb*.dll (only for VS2012 or VS2013)
> ;VC2013
> PATH=%PATH%;%VCINSTALLDIR%\bin\x86_amd64;%VCINSTALLDIR%\..\Common7\IDE;%VCINSTALLDIR%\bin
>
> PATH=%PATH%;%VCINSTALLDIR%\bin\x86_amd64;%VCINSTALLDIR%\..\Common7\IDE
> ----------------------------------------------------------------------------
>
>
> The problem is, when I compile something with -m64, I get the error:
> Can't run 'C:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\bin\amd64\link.exe', check PATH
>
> It's looking in ...\Microsoft Visual Studio 10.0, rather than
> ....\Microsoft Visual Studio 11.0 which is specified in sc.ini. Is there
> another step that I need to do?
>
> Thanks,
>
> Josh

That should work as is. Some ideas:

- you might have another sc.ini in the working directory or your HOME 
directory which is picked up before the one alongside dmd.exe

- for historic reasons LINKCMD64 setting/environment variable might also 
be used, maybe you have set this elsewhere in your sc.ini

If you run dmd with option -v, it will show the used sc.ini and the 
command line used to call the linker.


More information about the Digitalmars-d mailing list