Re: RooClassFactory::makePdf() can't work with gcc4.3

From: Axel Naumann <Axel.Naumann_at_cern.ch>
Date: Wed, 11 Nov 2009 16:20:43 +0100


Hi xuzijun123,

you probably want to use fabs instead of abs.

Cheers, Axel.

xuzijun123 wrote on 11/11/2009 03:31 PM:
> When I run like this:
> RooClassFactory::makePdf("RooMyPdf","x,alpha",0,"sqrt(abs(x*alpha))+0.1")
> .L RooMyPdf.cxx+
>
> I use Fedora 10 x86_64 and gcc4.3. I got this error "
> root [1] .L RooMyPdf.cxx+
> Info in <TUnixSystem::ACLiC>: creating shared library
> /home/zijunxu/Works/root/XuWorkDir/./RooMyPdf_cxx.so
> In file included from
> /home/zijunxu/Works/root/XuWorkDir/./RooMyPdf_cxx_ACLiC_dict.h:34,
> from /home/zijunxu/Works/root/XuWorkDir/./RooMyPdf_cxx_ACLiC_dict.cxx:17:
> /home/zijunxu/Works/root/XuWorkDir/./RooMyPdf.cxx: In member function
> ‘virtual Double_t RooMyPdf::evaluate() const’:
> /home/zijunxu/Works/root/XuWorkDir/./RooMyPdf.cxx:41: error: call of
> overloaded ‘abs(Double_t)’ is ambiguous
> /usr/include/stdlib.h:699: note: candidates are: int abs(int)
> /usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/cstdlib:175:
> note: long long int __gnu_cxx::abs(long long int)
> /usr/lib/gcc/x86_64-redhat-linux/4.3.2/../../../../include/c++/4.3.2/cstdlib:144:
> note: long int std::abs(long int)
> g++: /home/zijunxu/Works/root/XuWorkDir/./RooMyPdf_cxx_ACLiC_dict.o: No
> such file or directory
> Error in <ACLiC>: Compilation failed!"
>
>
> But when I use SL4.3 and gcc3.4, it's right;
>
> How can I solve it ?
>
> Thank you!
>
>
Received on Wed Nov 11 2009 - 16:19:29 CET

This archive was generated by hypermail 2.2.0 : Wed Nov 11 2009 - 17:50:03 CET