Hi Eric,
I took you script as is and compiled it on Windows with Microsoft 7.1 and ROOT 5.01/00 (where TQuarternion has been uploaded).
It worked nicely for me.
Since I do not have you libMath.dll, I can't make any other test?
What am I missing? Can you reproduce the problem with 5.01/00? Can you provide me with a more complete example?
Cheers,
Philippe.
-----Original Message-----
From: owner-roottalk_at_pcroot.cern.ch [mailto:owner-roottalk_at_pcroot.cern.ch]
On Behalf Of ANCIANT E.
Sent: Tuesday, June 28, 2005 7:11 AM
To: roottalk_at_pcroot.cern.ch
Subject: [ROOT] Problem with ACLIC linking friend functions under WinXP +
root 4.04.02
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]
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 Wed Jun 29 2005 - 16:28:20 MEST
This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:09 MET