438-byte "Hello, world" Win32 EXE in D

Georgy Shepelev via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Wed Aug 12 11:54:52 PDT 2015


On Wednesday, 17 September 2014 at 20:49:37 UTC, Vladimir 
Panteleev wrote:
> On Tuesday, 16 September 2014 at 12:33:26 UTC, dcrepid wrote:
>> Thanks for the help.  Unfortunately, I didn't want 64-bit 
>> library/object files so I had to modify the make files to 
>> point to the VC2010 32-bit compilers (Win64.mak points to the 
>> amd64 folders, so I'm a bit concerned now - did you really 
>> create a win32 or win64 exe?).
>
> Yes, sorry, that was the wrong command. Currently you have to 
> also specify the full paths to the compiler on make's command 
> line. I sent in two pull requests to document and simplify 
> building phobos32mscoff.lib:
>
> https://github.com/D-Programming-Language/druntime/pull/960
> https://github.com/D-Programming-Language/phobos/pull/2526

Hi all there!

I've faced the issue with rebuilding druntime/phobos
that come with binary distribution of dmd for windows
in COFF-format.

Firstly, VCDIR and SDKDIR should be specified correctly.
It is not a big deal since they can be set as parameters
to `make' but I suggest to use environment variables
%VCINSTALLDIR% and %WindowsSdkDir% in win64.mak to ease
compiling in Visual Studio's command prompt.
For example, on my working machine SDK is installed to
the D:\WinPrograms path.

Second, I suppose your approach with `VCBIN_SUBDIR' for CC, LD, 
AR/LIB
paths is fine.

The main trouble is quotes. =) They are the reason why I've got
the error 'cl : Command line error D8003 : missing source 
filename'.

And the last thing is zlib. Its win64.mak also has definition of 
macros
CC, LD, etc but the makefile is called from phobos' win64.mak
with the same arguments and... quotes! =) So I removed the 
arguments
to zlib's win64.mak.

I suppose that the process of building druntime/phobos should be 
like:
     1) open VS command prompt;
     2) add dmd to the PATH;
     3) cd R:\equired\path;
     4) make -f win64.mak MODEL=32mscoff

Diff files with my changes for both 67.1 and 68.0 versions are 
available there:
https://drive.google.com/folderview?id=0Bw5iSiWPdccTfm1ZeXVDcW9fSklmc3Z2TjRlVGVpX3RyNnZJM3gxWVBneGNzdWw4dk9Cd1U


More information about the Digitalmars-d-announce mailing list