www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Error interpretation / Pop3Client

reply =?ISO-8859-1?Q?Di=e9?= <d.cavadini freesurf.ch> writes:
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ť
Mar 28 2007
next sibling parent reply Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
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]
Mar 28 2007
next sibling parent Lars Ivar Igesund <larsivar igesund.net> writes:
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
Mar 28 2007
prev sibling parent reply =?ISO-8859-1?Q?Di=e9?= <d.cavadini freesurf.ch> writes:
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ť
Mar 28 2007
next sibling parent Charlie <charlie.fats gmail.com> writes:
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
Mar 28 2007
prev sibling parent reply Frits van Bommel <fvbommel REMwOVExCAPSs.nl> writes:
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):

 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.
Mar 28 2007
parent =?ISO-8859-1?Q?Di=e9?= <d.cavadini freesurf.ch> writes:
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 :-)
Mar 28 2007
prev sibling parent Charlie <charlie.fats gmail.com> writes:
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ť

Mar 28 2007