Hi, When loading complex.h, the function exp gets multiply defined. To solve this problem, I searched in the roottalk archive and I found a thread related to this topic; the last e-mail it contents was written by Masaharu Goto the 16 July 2001. For sake of completness, I just quote it below. ------------------------ (...) You need to load stdfunc.dll to avoid this problem. stdfunc.dll is created in lib/stdstrct directory. Without this library , double exp(double) is out of function overloading matching. If complex.h is loaded, complex exp(const complex&) is always used and it causes infinite recursion. Loading stdfunc.dll, double exp(double) is properly handled and you can avoid the problem. For making stdfunc.dll, there are 2 methods. 1) Using pure cint package Download pure cint source package, install it using an appropriate platform dependency file. At the end all essential DLLs will be created. You will find $CINTSYSDIR/include/stdfunc.dll. Copy this file to $ROOTSYS/cint/include/stdfunc.dll. 2) In root package, one of make option enebles you to build all essential DLLs. Please refer to ROOT documentation. (There was a problem in this course, but it was fixed during the ROOT2001 workshop.) (...) ----------------------- That looks fine but I don't succeed in using method 2) which seems to me more convenient for a ROOT user: the ROOT compilation (version 3.10/2) I did on linux didn't create me any .dll file -- in particular, in $ROOTSYS/cint/lib/stdstrct I don't have the file stdfunc.dll mentionned above. In addition, I couldn't find the description of the proper ROOT make option in the directory $ROOTSYS/README. Thanks for your help! Nicolas
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET