Problem with ACLIC linking friend functions under WinXP + root 4.04.02

From: ANCIANT E. <eric.anciant_at_sodern.fr>
Date: Tue, 28 Jun 2005 14:21:56 +0200

Hello ROOTERs,

I am trying to use ACLIC on a macro that uses a class (TQuaternion) that I previously loaded (in a library called libMath, see attached session) Methods of the class are correctly linked (for exemple ACLIC does not complain about Tquaternion::operator+(double))

But for friend function (like Tquaternion operator+(double, Tquaternion&) ) ACLIC linker Complains about not finding the corresponding function.

When compiling the macro under Visual I have not problem When interpreting the macro I have no problem (see attached session) Finally if I comment the line " q2 = a + q; " ACLIC also works

Does somebody has a hint of what I might be doing wrong ?

Eric


Compiled for win32.

CINT/ROOT C/C++ Interpreter version 5.15.169, Mar 14 2005 Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }. set source file copy flag ' 1'
root [0] gSystem->Load("p:/projets/ATOS/bin/release/libMath.dll") (int)0
root [1] .x SimpleTestQuaternion.C+
Info in <TWinNTSystem::ACLiC>: creating shared library p:\aps_local\scriptetuder oot\SimpleTestQuaternion_C.dll 228462_cint.cxx Warning: operator<<(), parameter only differs in reference type or not FILE:p:\r oot\root_4.04.02.win32gdk\/include\riostream.h LINE:32 s108_.cxx

   Creating library
p:\aps_local\scriptetuderoot\SimpleTestQuaternion_C.lib and object p:\aps_local\scriptetuderoot\SimpleTestQuaternion_C.exp s108_.obj : error LNK2001: unresolved external symbol "class TQuaternion __cdecl operator+(double,class TQuaternion const &)" (??H_at_YA?AVTQuaternion@@NABV0@@Z)
p:\aps_local\scriptetuderoot\SimpleTestQuaternion_C.dll : fatal error LNK1120: 1 unresolved externals Error in <ACLiC>: Compilation failed! Error: Function SimpleTestQuaternion() is not defined in current scope FILE: LI NE:0 Possible candidates are... filename line:size busy function type and name *** Interpreter error recovered ***
root [2] .x SimpleTestQuaternion.C
TQuaternion a quaternion class
(r,x,y,z)=(0.500000,0.000000,0.000000,0.000000)  (alpha,rho,theta,phi)=(0.000000,0.000000,0.000000,0.000000) root [3]



Ce message et eventuellement les pieces jointes sont exclusivement transmis a l'usage de leur destinataire. Leur contenu est confidentiel. Si vous n etes pas le bon destinataire nous vous demandons de ne pas conserver, copier, utiliser ou divulguer cette communication. Merci de le detruire et de me notifier cette erreur.

INTERNET ne permettant pas d assurer l integrite de ce message, SODERN decline toute responsabilite au cas ou il aurait ete intercepte ou modifie.

This message and possibly any attachments are transmitted for the exclusive use of their addressee. Their content is confidential. If you are not the intended recipient please do not keep, copy, use or disclose this communication to others. Also Please delete it and notify the sender at once.

Because of the nature of INTERNET the sender is not in a position to ensure the integrity of this message, therefore SODERN disclaims any liability whatsoever in the event of this message having been intercepted and/or altered.

Received on Tue Jun 28 2005 - 14:27:48 MEST

This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:09 MET