Thread overview
Error interpretation / Pop3Client
Mar 28, 2007
Dié
Mar 28, 2007
Frits van Bommel
Mar 28, 2007
Lars Ivar Igesund
Mar 28, 2007
Dié
Mar 28, 2007
Charlie
Mar 28, 2007
Frits van Bommel
Mar 28, 2007
Dié
Mar 28, 2007
Charlie
March 28, 2007
Hello!
I'm using dCode IDE for compiling the Exemple in Pop3Client.d (Tango...Sources... trunk/patches/proposals).

I have this error:

OPTLINK (R) for Win32  Release 7.50B1
Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved

poptest.obj(poptest)
 Error 42: Symbol Undefined _D5tango3net4pop310Pop3Client14POP3Connection7__ClassZ
poptest.obj(poptest)
 Error 42: Symbol Undefined _D5tango3net4pop310Pop3Client14POP3Connection5_ctorMFAaAaAaiZC5tango3net4pop310Pop3Client14POP3Connection
--- errorlevel 2

but i dont understant why POPConnection provocate this error.

Before this, my question is: how can i understand this error string "_D5tango3net4pop310Pop3Client14POP3Connection7__ClassZ" for example.
I think "tango...net...pop3..." rapresent the hierarchy folders, but "_D.....3......4......14......7__ClassZ"???????

Thank you

Dié
March 28, 2007
Dié wrote:
> Hello!
> I'm using dCode IDE for compiling the Exemple in Pop3Client.d (Tango...Sources... trunk/patches/proposals).
> 
> I have this error:
> 
> OPTLINK (R) for Win32  Release 7.50B1
> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
> 
> poptest.obj(poptest)
>  Error 42: Symbol Undefined _D5tango3net4pop310Pop3Client14POP3Connection7__ClassZ
> poptest.obj(poptest)
>  Error 42: Symbol Undefined _D5tango3net4pop310Pop3Client14POP3Connection5_ctorMFAaAaAaiZC5tango3net4pop310Pop3Client14POP3Connection
> --- errorlevel 2
> 
> but i dont understant why POPConnection provocate this error.
> 
> Before this, my question is: how can i understand this error string "_D5tango3net4pop310Pop3Client14POP3Connection7__ClassZ" for example.
> I think "tango...net...pop3..." rapresent the hierarchy folders, but "_D.....3......4......14......7__ClassZ"???????

It's the mangled version of "tango.net.pop3.Pop3Client.POP3Connection.__Class". In other words, the ClassInfo data[1] for the class POP3Connection in module tango.net.pop3.Pop3Client.
(Phobos' std/demangle.d contains an example on how to use it to automatically demangle such names)

The other string means class "tango.net.pop3.Pop3Client.POP3Connection tango.net.pop3.Pop3Client.POP3Connection._ctor(char[], char[], char[], int, <this-ptr>)", i.e. the constructor taking three char[]s and an int (and an implicit this pointer) for that same class.

Are you sure you compiled and linked the tango.net.pop3.Pop3Client module?
(A note for others who couldn't find that module: the Pop3Client module seems to only be available under trunk/patches/proposals in the SVN repository)

If the above doesn't help:
What version of Tango are you using and what version of DMD?
AFAIK Tango hasn't yet been updated for DMD v1.010. I'm not sure if it needs to be, but I haven't tried it either.


[1]: a class defined in object.d[i]
March 28, 2007
Frits van Bommel wrote:
> Dié wrote:
> 
> Are you sure you compiled and linked the tango.net.pop3.Pop3Client module? (A note for others who couldn't find that module: the Pop3Client module seems to only be available under trunk/patches/proposals in the SVN repository)

Awaiting review.

> 
> If the above doesn't help:
> What version of Tango are you using and what version of DMD?
> AFAIK Tango hasn't yet been updated for DMD v1.010. I'm not sure if it
> needs to be, but I haven't tried it either.

SVN is updated for DMD 1.010.

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
March 28, 2007
Have you copied Pop3Client.d to tango/net/ ?  You'll also need to use a build tool that pulls in all project imports, such as build / rebuild / jake.

( The numbers in the string _D5tango3net4pop310Pop3Client14POP3Connection7__ClassZ are the length of the following entity name , 5 = tango, 3 = net, 4 = pop3 etc )


Charlie

Dié wrote:
> Hello!
> I'm using dCode IDE for compiling the Exemple in Pop3Client.d (Tango...Sources... trunk/patches/proposals).
> 
> I have this error:
> 
> OPTLINK (R) for Win32  Release 7.50B1
> Copyright (C) Digital Mars 1989 - 2001  All Rights Reserved
> 
> poptest.obj(poptest)
>  Error 42: Symbol Undefined _D5tango3net4pop310Pop3Client14POP3Connection7__ClassZ
> poptest.obj(poptest)
>  Error 42: Symbol Undefined _D5tango3net4pop310Pop3Client14POP3Connection5_ctorMFAaAaAaiZC5tango3net4pop310Pop3Client14POP3Connection
> --- errorlevel 2
> 
> but i dont understant why POPConnection provocate this error.
> 
> Before this, my question is: how can i understand this error string "_D5tango3net4pop310Pop3Client14POP3Connection7__ClassZ" for example.
> I think "tango...net...pop3..." rapresent the hierarchy folders, but "_D.....3......4......14......7__ClassZ"???????
> 
> Thank you
> 
> Dié
March 28, 2007
Frits van Bommel Wrote:


> Are you sure you compiled and linked the tango.net.pop3.Pop3Client module? (A note for others who couldn't find that module: the Pop3Client module seems to only be available under trunk/patches/proposals in the SVN repository)
> 
> If the above doesn't help:
> What version of Tango are you using and what version of DMD?
> AFAIK Tango hasn't yet been updated for DMD v1.010. I'm not sure if it
> needs to be, but I haven't tried it either.

"Are you sure you compiled and linked the tango.net.pop3.Pop3Client module?"

In my test-program i have "import tango.net.pop3.Pop3Client;" and in Pop3Client ther is the POP3Connection class (this class extends Telnet)



List step-by-step of my installation (Windows):

1)dmc.zip & dmd.zip ==extract==> result:C:\dm
                                                             C:\dmd

  Version: Digital Mars D Compiler v1.010

  (source: http://www.prowiki.org/wiki4d/wiki.cgi?EvaluationGuide#Installation)

2)C:\dmd\bin & C:\dm\bin added to path.


=====>Now the D compiler work with Phobos
      then...

3)Now for the installation of Tango i've tried 2 way:

   3.1) The "Automated Windows Installer"

        Just download the installer and launch.
        With this way the installation create a tango's folder in C:\dmd\
        Now in "MyPrograms" ther is Tango with "Switch to Tango" and "Switch to Phobos" tools.

   3.2) The "Step By Step" (I've tried this way finally)

        Download the zip archive from http://www.dsource.org/projects/tango/browser/trunk
        and extract into C:\dmd\import\tango
        result: C:\dmd\import\tango\doc
                                   \example
                                   \install
                                   \lib
                                   \patches\proposal (here we fond the Pop3Client.d)
                                   \std
                                   \tango


        then i copy this in sc.ini:

        [Environment]
        ; LIB="%@P%\..\lib";\dm\lib
        LIB="%@P%\..\import\tango\lib;%@P%\..\lib;%@P%\..\..\dm\lib"
        ; DFLAGS="-I%@P%\..\src\phobos"
        DFLAGS="-I%@P%\..\import\tango" -version=Tango
        LINKCMD=%@P%\..\..\dm\bin\link.exe

        for using Tango

        i run build-dmd.bat

        when i run build-dmd.bat i have some errors!!!:
        it not found C:\dmd\import\tango\lib\compiler\dmd\aaA.obj
                     C:\dmd\import\tango\lib\compiler\dmd\util\console.obj
                     C:\dmd\import\tango\lib\compiler\dmd\typeinfo\ti_AC.obj
                     C:\dmd\import\tango\lib\common\tango\core\Exception.obj
                     ...and some other

        i run generate-usergdi32.bat



Now i've placed C:\dmd\import\tango\doc\patches\proposal\Pop3Client.d (and Exception.d) in C:\dmd\import\tango\tango\net\pop3.

Is correct if i think thet the cause of my problems is the not-corretly work ok build-dmd.bat?

I don't know what to do with this "Error 42: Symbol Undefined _D5tango3net4pop310Pop3Client14POP3Connection7__ClassZ"

Dié



March 28, 2007
Dié wrote:
> Frits van Bommel Wrote:
> 
> 
>> Are you sure you compiled and linked the tango.net.pop3.Pop3Client module?
>> (A note for others who couldn't find that module: the Pop3Client module seems to only be available under trunk/patches/proposals in the SVN repository)
>>
>> If the above doesn't help:
>> What version of Tango are you using and what version of DMD?
>> AFAIK Tango hasn't yet been updated for DMD v1.010. I'm not sure if it needs to be, but I haven't tried it either.
> 
> "Are you sure you compiled and linked the tango.net.pop3.Pop3Client module?"
> 
> In my test-program i have "import tango.net.pop3.Pop3Client;" and in Pop3Client ther is the POP3Connection class (this class extends Telnet)
> 
> 
> 
> List step-by-step of my installation (Windows):
> 
> 1)dmc.zip & dmd.zip ==extract==> result:C:\dm
>                                                              C:\dmd
> 
>   Version: Digital Mars D Compiler v1.010
> 
>   (source: http://www.prowiki.org/wiki4d/wiki.cgi?EvaluationGuide#Installation)
> 
> 2)C:\dmd\bin & C:\dm\bin added to path.
> 
> 
> =====>Now the D compiler work with Phobos
>       then...
> 
> 3)Now for the installation of Tango i've tried 2 way:
> 
>    3.1) The "Automated Windows Installer"
>                 Just download the installer and launch.
>         With this way the installation create a tango's folder in C:\dmd\
>         Now in "MyPrograms" ther is Tango with "Switch to Tango" and "Switch to Phobos" tools.
> 
>    3.2) The "Step By Step" (I've tried this way finally)
>                 Download the zip archive from http://www.dsource.org/projects/tango/browser/trunk
>         and extract into C:\dmd\import\tango
>         result: C:\dmd\import\tango\doc
>                                    \example
>                                    \install
>                                    \lib
>                                    \patches\proposal (here we fond the Pop3Client.d)
>                                    \std
>                                    \tango
>                         then i copy this in sc.ini:
> 
>         [Environment]
>         ; LIB="%@P%\..\lib";\dm\lib
>         LIB="%@P%\..\import\tango\lib;%@P%\..\lib;%@P%\..\..\dm\lib"
>         ; DFLAGS="-I%@P%\..\src\phobos"
>         DFLAGS="-I%@P%\..\import\tango" -version=Tango
>         LINKCMD=%@P%\..\..\dm\bin\link.exe
> 
>         for using Tango
> 
>         i run build-dmd.bat 
> 
>         when i run build-dmd.bat i have some errors!!!:
>         it not found C:\dmd\import\tango\lib\compiler\dmd\aaA.obj
>                      C:\dmd\import\tango\lib\compiler\dmd\util\console.obj
>                      C:\dmd\import\tango\lib\compiler\dmd\typeinfo\ti_AC.obj
>                      C:\dmd\import\tango\lib\common\tango\core\Exception.obj
>                      ...and some other
>                 i run generate-usergdi32.bat
> 
>         
> 
> Now i've placed C:\dmd\import\tango\doc\patches\proposal\Pop3Client.d (and Exception.d)
> in C:\dmd\import\tango\tango\net\pop3.
> 
> Is correct if i think thet the cause of my problems is the not-corretly work ok build-dmd.bat?
> 
> I don't know what to do with this "Error 42: Symbol Undefined _D5tango3net4pop310Pop3Client14POP3Connection7__ClassZ"
> 
> Dié
> 
> 
> 


You might want to join #d.tango at irc.freenode.net , for more immediate help.

Charlie
March 28, 2007
Dié wrote:
> Frits van Bommel Wrote:
> 
> 
>> Are you sure you compiled and linked the tango.net.pop3.Pop3Client module?
>> (A note for others who couldn't find that module: the Pop3Client module seems to only be available under trunk/patches/proposals in the SVN repository)
>>
>> If the above doesn't help:
>> What version of Tango are you using and what version of DMD?
>> AFAIK Tango hasn't yet been updated for DMD v1.010. I'm not sure if it needs to be, but I haven't tried it either.
> 
> "Are you sure you compiled and linked the tango.net.pop3.Pop3Client module?"
> 
> In my test-program i have "import tango.net.pop3.Pop3Client;" and in Pop3Client ther is the POP3Connection class (this class extends Telnet)

That's not enough. You also need to explicitly compile that module and specify the .o file on the DMD command line (or specifying the .d file on the command line to compile it anew every time).
A tool like bud/build or rebuild will do this for you automatically, see http://dsource.org/projects/build or http://dsource.org/projects/dsss/wiki/Rebuild, respectively.
An alternative option would be to manually compile all the stuff that build-*.{bat,sh} doesn't and pack it into a library to specify on the command line. That may for instance be helpful with IDEs that aren't aware of the build tools I mentioned above.

> List step-by-step of my installation (Windows):
[snip]
> Is correct if i think thet the cause of my problems is the not-corretly work ok build-dmd.bat?

No, I don't think that would cause this particular problem. However if you didn't install Tango correctly that may cause some other problems later on.

> I don't know what to do with this "Error 42: Symbol Undefined _D5tango3net4pop310Pop3Client14POP3Connection7__ClassZ"

As mentioned above, I'd suggest using either bud/build or rebuild to compile your programs.
March 28, 2007
Frits van Bommel Wrote:

> That's not enough. You also need to explicitly compile that module and
> specify the .o file on the DMD command line (or specifying the .d file
> on the command line to compile it anew every time).
> A tool like bud/build or rebuild will do this for you automatically, see
> http://dsource.org/projects/build or
> http://dsource.org/projects/dsss/wiki/Rebuild, respectively.
> An alternative option would be to manually compile all the stuff that
> build-*.{bat,sh} doesn't and pack it into a library to specify on the
> command line. That may for instance be helpful with IDEs that aren't
> aware of the build tools I mentioned above.
> 
>

Thank you Charlie & Frits! Now with rebuild it work!!

See you in the next post!

Dié

...and sorry for my english :-)