www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - private interface does not link

reply Myron Alexander <someone somewhere.com> writes:
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hello.

I have an interface that I made private as the interface is module 
specific. For this example, I created the smallest test code that 
exhibits the problem.

I can compile the source but when it links, I get:

 F:\opt\digitalmars\dmd\bin\..\..\dm\bin\link.exe main,,,user32+kernel32/noi;
 OPTLINK (R) for Win32  Release 7.50B1
 Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
 
 main.obj(main)
  Error 42: Symbol Undefined _D4main15ConnectionState10checkStateMFZb
 --- errorlevel 1

If I remove the private attribute from the interface, it works. I am using DMD 1.020. Is this a DMD bug? Thanks, Myron.
Aug 30 2007
parent Daniel Keep <daniel.keep.lists gmail.com> writes:
Myron Alexander wrote:
 Hello.
 
 I have an interface that I made private as the interface is module
 specific. For this example, I created the smallest test code that
 exhibits the problem.
 
 I can compile the source but when it links, I get:
 
 F:\opt\digitalmars\dmd\bin\..\..\dm\bin\link.exe
 main,,,user32+kernel32/noi;
 OPTLINK (R) for Win32  Release 7.50B1
 Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

 main.obj(main)
  Error 42: Symbol Undefined _D4main15ConnectionState10checkStateMFZb
 --- errorlevel 1

If I remove the private attribute from the interface, it works. I am using DMD 1.020. Is this a DMD bug? Thanks, Myron.

I had the same issue several months ago. Took me about four days to work out why my code wasn't linking. I'm pretty sure this is a DMD bug; it's clearly generating a reference to the ConnectionState.checkState function which *doesn't exist*. That said, I never got around to filing a bug for it since I was swamped at the time. -- Daniel
Aug 30 2007