D1 & D2 alpha's for Win64

Rainer Schuetze r.sagitario at gmx.de
Mon Oct 15 00:09:44 PDT 2012



On 10/15/2012 3:44 AM, Walter Bright wrote:
> On 10/14/2012 6:08 PM, Andrej Mitrovic wrote:
>  > Ok so we're only supposed to compile with -c when using -m64? I don't
>  > suppose DMD could automatically invoke the VC linker?
>  >
>
> It does automatically invoke the VC linker.
>
> You'll need to set the VCINSTALLDIR environment variable. I set it with
> sc.ini as:
>
> ---------------------
> [Environment]
> LIB=c:\cbx\mars\phobos;c:\cbx\mars\druntime\lib;c:\dm\lib\;c:\curl\lib
> DDFLAGS=-Ic:\cbx\mars\phobos
> DFLAGS=-Ic:\cbx\mars\phobos;c:\cbx\mars\druntime\import
> #LINKCMD=c:\dm\bin\link.exe
> VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\
> WindowsSdkDir=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\
> ----------------------

I guess there should be different environments for each architecture 
specified in sc.ini. Especially the LIB variable will never mix because 
the windows sdk libraries are called the same on both architectures.

A problem with that is the DFLAGS variable: it is read before the 
command line, so you don't know whether -m32 or -m64 is passed (and it 
might even specify the switch itself), so you don't know which 
architecture to use.

A solution might be to have additional environment blocks 
[Environment32] and [Environment64] that are evaluated after the command 
line processing.


More information about the Digitalmars-d-announce mailing list