can't compile a simple class
John Colvin
john.loughran.colvin at gmail.com
Sat Mar 23 14:54:00 PDT 2013
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.
More information about the Digitalmars-d
mailing list