March 14, 2005 Re: extern, how does it work ( linker says undefined ) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Manfred Nowak | Manfred Nowak wrote:
> Agreed. Walter seems to have switched from a programmers point of view on D to a compiler writers point of view on D.
I'm not sure that Walter ever switched *from*
the compiler writers point of view on D... :-)
--anders
|
March 14, 2005 Re: extern, how does it work ( linker says undefined ) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Manfred Nowak | On Mon, 14 Mar 2005 10:36:49 +0000 (UTC), Manfred Nowak <svv1999@hotmail.com> wrote:
> "Regan Heath" <regan@netwin.co.nz> wrote:
> So the specs are ambiguous. However, a discussion on the specs
> wouldn't help Carlos.
True, but you've already done that. :)
Regan
|
March 14, 2005 Re: extern, how does it work ( linker says undefined ) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Derek Parnell | Derek Parnell wrote:
> On Mon, 14 Mar 2005 08:46:47 +0000 (UTC), Manfred Nowak wrote:
>
>
>>Carlos <carlos2003nov@yahoo.ca> wrote:
>>
>>[...]
>>
>>>the linker complains:
>>> bsderr.obj(bsderr)
>>> Error 42: Symbol Undefined _D6bsderr7programPa
>>
>>[...]
>>
>>Change
>>
>>extern char* program;
>>
>>to
>>
>>extern (D) char* program;
>
>
> Curiously if you use "extern (C) char* program;" it also compiles and runs
> correctly. This might be a bug, in either dmd or the documentation.
>
But don't extern(D) and extern(C) have different name mangling affects also? extern(D) usually appends the current module/namespace to the name, while extern(C) typically keeps the symbol name undecorated.
-JJR
|
Copyright © 1999-2021 by the D Language Foundation