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.