Hi Severin,
> a) i want to compile an interface directly into an interpreter
Yes, those re-written headers are used in this case
> (e.g.: i pass those as include directories via -I to cint along with
-c-1 et. al.)
No, you do NOT need to tell cint where they are. If everything is
correctly configured and installed, CINT will find them on its own when
it needs them.
> (and how should i compile those generated sources, because if i just
use the normal include path i get undeclared symbols for
> G__CINT_ENDS.., which are clearly defined within the cint/include
headers)
There is a bug somewhere :), the generated source should never contains
G__CINT_ENDS.
> Is there a way to pre-compile all those headers into the interpreter
so i don't have to keep those 'external' header files around and
> only have a single working executable which includes all the stuff i
need?
Unfortunately, not at this time. You do need to distribute the
re-written the header if you want to be able generate dictionary and
interpret headers.
> Given that this file doesn't exist i suppose it should rather include
"algo.h" ?
Well rootcint is suppose to use the correct 'name' for you compiler
(depending on the compiler and compiler version the name of this header
file changed many times :(). Can you provide an example where it gets
it work (i.e. source file, command line used, platform, compiler and
compiler version).
> If i set the Y option (ignore std namespace) to 0 --> not ignored,
everything works fine except for the symbol _Bool
Okay, this looks indeed like a bug ... however not that _Bool is part of
the C99 standard, in C++ you should use 'bool'.
And we should review the code in iterator (that was copy/pasted more or
so from msvc6) to remove the use of _Bool.
Cheers,
Philippe.
Severin Ecker wrote:
> Hi Philippe,
>
> I've been playing around a bit more and i think i can build the
> toolchain the way i need to. I'd just like to clarify something so i
> don't get it wrong again :)
>
> The re-written header files within the cint/include, cint/stl,
> cint/lib directory i need if
> a) i want to compile an interface directly into an interpreter (e.g.:
> i pass those as include directories via -I to cint along with -c-1 et.
> al.) correct? (and how should i compile those generated sources,
> because if i just use the normal include path i get undeclared symbols
> for G__CINT_ENDS.., which are clearly defined within the cint/include
> headers)
> b) i want to run or write a script file in the interpreter which uses
> e.g.: the STL
> also for case a, i must use the rewritten STL headers otherwise
> Is there a way to pre-compile all those headers into the interpreter
> so i don't have to keep those 'external' header files around and only
> have a single working executable which includes all the stuff i need?
>
> so far so good for the questions.
>
> now I think I've discovered one or two bug in the compiler part.
> If the header contains an inclusion of 'STL-header'.h then an
> additional include is added to the file named
> algorithm.h (newlink.cxx around line 2739)
> Given that this file doesn't exist i suppose it should rather include
> "algo.h" ?
>
> If i set the Y option (ignore std namespace) to 0 --> not ignored,
> everything works fine except for the symbol _Bool (Admittedly I've
> never come across that one but i suppose it's in the standard. the
> problem is that at least on windows with msvc8, it's within namespace
> std, and therefore results in an undeclared symbol if namespace std
> should not be ignored.)
> (file "iterator" around line 399, i suppose fixing this against the
> check whether std should be ignored or not is quite a bit of an
> effort; for me i just use bool instead, but i suppose you have
> implications which prevent you from using this type)
>
> cheers,
> severin
>
>
> Philippe Canal wrote:
>> Hi,
>>
>> There was many problems with the Makefile generated by makecint on
>> Windows; they have all been correctly in the svn repository.
>> Please try it again :)
>>
>> > - Am I correct that CINTIPATH must contain the directory which
>> points to the cint/include, and supposedly cint/stl directory, that
>> is to the cint headers and not to the headers of the compiler?
>>
>> No, it should only contain the location where G__ci.h is.
>>
>> > - Am I further correct that IPATH must contain the compiler headers
>> then?
>>
>> No the compiler will already know where they are.
>>
>> > - Am I correct that i must copy the G__setup.c file from the
>> 'cint/main' directory? (this is not mentioned anywhere, but since
>> it's the only location where i found this file and i haven't found
>> information that i must write it myself.. and if so what must go in
>> there...)
>>
>> Yes but on windows the makefile generated by makecint was not
>> correctly pointing to it.
>>
>> > I always get errors like this:
>> > '/cint/include\stddef.h(4) : error C2632: 'short' followed by
>> 'wchar_t' is illegal'
>>
>> Yes, this is probably because of the change you made to CINTIPATH.
>>
>> Cheers,
>> Philippe.
>>
>>
>>
>>
>> Severin Ecker wrote:
>>> Hi,
>>>
>>> alright, maybe I'm just being more stupid than i should be, but i
>>> can't get any of the makecint demos to work.
>>> I've read the README.txt, the manpage for makecint... and I
>>> (hopefully) haven't overseen anything but I guess there's some
>>> setting issues which i need to configure but haven't found.
>>>
>>> looking at the procedure in the manpage i can do steps one and two,
>>> that is, generate the makefile and modify it to my needs.
>>>
>>> - Am I correct that CINTIPATH must contain the directory which
>>> points to the cint/include, and supposedly cint/stl directory, that
>>> is to the cint headers and not to the headers of the compiler?
>>> - Am I further correct that IPATH must contain the compiler headers
>>> then?
>>> - Am I correct that i must copy the G__setup.c file from the
>>> 'cint/main' directory? (this is not mentioned anywhere, but since
>>> it's the only location where i found this file and i haven't found
>>> information that i must write it myself.. and if so what must go in
>>> there...)
>>>
>>> Now somewhere must be an error in what I'm doing because trying to
>>> do this with any of the samples or even the most minimalistic test
>>> interface:
>>>
>>> #include <stdio.h>
>>> void func(void) { printf("hello\n"); };
>>>
>>> I always get errors like this:
>>> '/cint/include\stddef.h(4) : error C2632: 'short' followed by
>>> 'wchar_t' is illegal'
>>>
>>> I have tried this with MSVC 8 and 9, pre-compiled versions of
>>> cint/makecint, my own compiled versions of cint/makecint with
>>> libcint both statically and dynamically linked and all that for 'all
>>> root' and 'cint only' (which interestingly give differently sized
>>> .dlls at least on my system) but no success. (oh and i've used the
>>> latest version of the svn trunk)
>>>
>>> many many thanks in advance!
>>>
>>> cheers,
>>> severin