Re: Function not definen in current scope

From: Cedric Sodhi <manday_at_gmx.net>
Date: Sun, 21 Mar 2010 17:09:08 +0100


So after all it is just a convenience offered by root, if I get it correctly.

I can aswell go through the normal process of exporting the library as a normal DLL into an so (dll on win) and root will take the according header as a LIB-file replacement to dynamically link my libary. I'll try this, thanks.

On 21.03.2010 16:43, Axel Naumann wrote:
> Hi Cedric,
>
> On 2010-03-21 15:41, Cedric Sodhi wrote:
>> By saying that root does support templating you mean that
>> root runs on libraries which are compiled using templates
>
> I was referring to I/O.
>
>> how can i use externally compiled shared objects / dll s in root? I've
>> read a rather short section in the manual describing a sortof builtin
>> compiler which I donot wish to use.
>
> It's not a builtin compiler. It's whatever your compiler is - ROOT
> simply calls it and keeps track of the dependencies. See it as a
> Makefile replacement.
>
>> is it possible to compile so's and
>> runtime link them into cint/root?
>
> Yes, but you need to create the dictionary. Search for "rootcint" on the
> ROOT web page. The easiest way is to have one header file containing all
> the lib's headers as #includes, and loading that into ROOT as .L
> MainHeader.h+
>
> Btw, I much prefer having this discussion on the list, so other people
> can follow (read and reply), too.
>
> Cheers, Axel.
>
>>
>> On 21.03.2010 15:09, Axel Naumann wrote:
>>> Hi Cedric,
>>>
>>> On 2010-03-21 15:02, Cedric Sodhi wrote:
>>>> yes tthats waht i did now, thanks. i may thus assume that root does not
>>>> support tmplting?
>>>
>>> Sure it does. You're stopped by CINT, the C++ interpreter and that has
>>> limits in its template instantiation powers. ROOT itself is doing just
>>> fine; all the LHC experiments use the fanciest templates without
>>> problems. We're investigating replacing CINT altogether to get full
>>> template support. Until then, please simplify your code if you want to
>>> pass it to ROOT's interpreter :-)
>>>
>>> Cheers, Axel
>>>
>>>> On 21.03.2010 14:55, Axel Naumann wrote:
>>>>> Hi Cedric,
>>>>>
>>>>> standard aside - CINT is not going to be able to handle that. What
>>>>> about
>>>>> converting the overloads to this signature?
>>>>>
>>>>> std::deque< float>* deCASSYfy( std::ifstream& inFile,const int*
>>>>> cols,
>>>>> size_t colcnt)
>>>>>
>>>>> That will help CINT understand it at minimal cost.
>>>>>
>>>>> Cheers, Axel.
>>>>>
>>>>>
>>
>
Received on Sun Mar 21 2010 - 17:09:17 CET

This archive was generated by hypermail 2.2.0 : Sun Mar 21 2010 - 17:50:01 CET