Re: DMD under 64-bit Windows 7 HOWTO

2013-05-25 Thread Sébastien.Kunz-Jacques

On Saturday, 25 May 2013 at 13:24:56 UTC, Rainer Schuetze wrote:



On 25.05.2013 15:03, "Sébastien Kunz-Jacques" 
" wrote:
On Tuesday, 18 December 2012 at 13:33:03 UTC, Gor Gyolchanyan 
wrote:


I hope I was helpful, because when I started to set up a 
development
environment under 64-bit Windows 7, I went through a lot of 
problems

to get
here and I'd love to have this HOWTO at that time.


I just tried this with the current beta (may 25, 2.063). It 
lacks the

-m64 option. Was it present in some older beta ?



-m64 isn't displayed in the usage screen (no idea why it is 
excluded there), but it is supported aswell as -m32 (the 
default).


Thanks for the tip. I had incorrectly put quotes around -m64 
-L/NOLOGO and the resulting error message


unrecognized switch '-m64 -L/NOLOGO'

plus the lack of mention of -m64 in the dmd command-line help 
confused me.


Re: DMD under 64-bit Windows 7 HOWTO

2013-05-25 Thread Sébastien.Kunz-Jacques
On Tuesday, 18 December 2012 at 13:33:03 UTC, Gor Gyolchanyan 
wrote:

Good day, fellow D developers.
After spending much time figuring out how to make DMD work 
fluently under
64-bit Windows 7 I've realized that this is not a trivial task 
and lots of
people might have trouble with this, so I've decided to post my 
solution,

that might save people a lot of time.
As we know, there are compatibility problems with 32-bit DMD 
binaries,
because they are compiled using DMC back-end, which can only 
produce OMF
binaries, so in order to avoid problems with linking against 
externally
compiled libraries, it's much easier to stick to 64-bit 
binaries, so that
DMD will use the Visual Studio linker to produce compatible 
COFF binaries.
Another problem is that 32-bit DMD binaries are linked against 
obsolete
32-bit WinAPI libraries, which lack some very important 
functions, while
the 64-bit binaries are required to link with the 64-bit 
libraries,

supplied by the the Windows SDK.

And here's how this could be arranged:

1. Prepare your development folder.
1.1. Create a folder with no spaces in its full path.
1.2. Store its full path in the '%DEV_DIR_ROOT%' environment 
variable.

2. Get the Windows SDK.
2.1. Download the Windows SDK.
2.1.1. Navigate to 
'http://msdn.microsoft.com/en-US/windows//bb980924.aspx'

in a web browser.
2.1.2. Under section 2 (number '2' in a green circle) click on 
the bold

blue 'Install Now' link.
2.1.3. In the opened window click in the blue 'Download' button 
at the

bottom of the page.
2.1.4. Make sure, that the Windows SDK installer 
('winsdk_web.exe') is

downloaded.
2.2. Install the downloaded Windows SDK.
2.2.1. Navigate to the folder, where the Windows SDK installer 
was

downloaded in a file browser.
2.2.2. Double-click on the installer and agree to security 
warnings to

launch it.
2.2.3. Click next, read and agree to the license until you 
reach the

'Install Locations' screen.
2.2.4. Store the path under 'Destination Folder for Tools' in 
the

'%DEV_DIR_MSWINSDK%' (e.g. 'C:\Program Files (x86)\Microsoft
SDKs\Windows\v7.0A') and click 'Next >'.
2.3.3. On the 'Installation Options' uncheck everything except 
'x64

Libraries' and 'Visual C++ Compilers' and click 'Next >'.
2.3.4. Confirm that everything is correct and click 'Next >' to 
start

installing.
2.3.5. Make sure, tata the installation is completed 
succesfully.
2.3.6. Store the path to the installed Visual Studio C++ 
compiler into the

'%DEV_DIR_MSVC%' environment variable (e.g. 'C:\Program Files
(x86)\Microsoft Visual Studio 10.0\VC').
3. Get the DMD.
3.1. Navigate to 'http://ftp.digitalmars.com/dmd2beta.zip' in a 
web browser.
3.2. Make sure, that the DMD compiler archive ('dmd2beta.zip') 
is

downloaded.
3.3. Unzip the archive into '%DEV_DIR_ROOT%\Tools', so that the 
'dmd2'
folder in the archive will end up in 
'%DEV_DIR_ROOT%\Tools\dmd2'.
3.4. Adapt the compiler configuration to the development 
environment.
3.4.1. Open the file 
'%DEV_DIR_ROOT%\Tools\dmd2\windows\bin\sc.ini' in a

text editor.
3.4.2. Replace the line with 'LIB=' with the line
'LIB="%DEV_DIR_WINSDK%\Lib\x64";"%DEV_DIR_MSVC%\lib\amd64";"%@P%\..\lib"'.
3.4.3. Add '-m64 -L/NOLOGO' to  the 'DFLAGS' variable.
3.4.4. Remove the lines with 'VCINSTALLDIR=' and 
'WindowsSdkDir='.

3.4.5. Replace the like with 'LINKCMD64=' with the line
'LINKCMD64="%DEV_DIR_MSVC%\bin\amd64\link.exe"'
Now "%DEV_DIR_ROOT%\Tools\dmd2\windows\bin\dmd.exe" will always 
use the
Windows SDK libraries and Visual C++ compiler to produce 64-bit 
COFF

binaries.

I hope I was helpful, because when I started to set up a 
development
environment under 64-bit Windows 7, I went through a lot of 
problems to get

here and I'd love to have this HOWTO at that time.


I just tried this with the current beta (may 25, 2.063). It lacks 
the -m64 option. Was it present in some older beta ?