can't compile a simple class

Namespace rswhite4 at googlemail.com
Sat Mar 23 14:08:38 PDT 2013


On Saturday, 23 March 2013 at 21:04:25 UTC, Patrick Tinkham wrote:
> Sorry for the question. I am a n00b to D. I tried to compile 
> the following code from Alexandrescu's book:
>
> import std.stdio;
> class A {
>   int x = 42;
> }
>
> unittest {
>   auto a1 = new A;
>   assert (a1.x == 42);
>   auto a2 = a1;
>   a2.x = 100;
>   assert (a1.x == 100);
> }
>
> at the command line:
>
> /d$ dmd c.d
> /usr/lib/i386-linux-gnu/libphobos2.a(dmain2_473_1a5.o): In 
> function `main':
> src/rt/dmain2.d:(.text.main+0x4): undefined reference to 
> `_Dmain'
> /usr/lib/i386-linux-gnu/libphobos2.a(deh2_453_525.o): In 
> function `_D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable':
> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x4): 
> undefined reference to `_deh_beg'
> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0xc): 
> undefined reference to `_deh_beg'
> src/rt/deh2.d:(.text._D2rt4deh213__eh_finddataFPvZPS2rt4deh29FuncTable+0x12): 
> undefined reference to `_deh_end'
>
> ...
>
> plus much more encrypted Klingon.
>
> Help?

You need a main function:

import std.stdio;
class A {
   int x = 42;
}

unittest {
   auto a1 = new A;
   assert (a1.x == 42);
   auto a2 = a1;
   a2.x = 100;
   assert (a1.x == 100);
}

void main() { }


More information about the Digitalmars-d mailing list