On Saturday, 23 March 2013 at 21:12:25 UTC, Patrick Tinkham wrote:
On Saturday, 23 March 2013 at 21:08:39 UTC, Namespace wrote:
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:j

/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() { }

Thank you!!! (I guess I'm just accustomed to stand-alone classes in Java...)

dmd has a flag - - main that auto generates a blank main function to prevent linker errors.

Reply via email to