Problem with dictionary compile step w/Cygwin

hi rooters

for an outreach project at local high schools, i developed a very
simple GUI
under MacOSX Tiger & XCode 2.3 which compiles and runs perfectly…
the next
step was to get the same code to compile and run under WinXP and
cygwin/gcc.

the main code compiles fine, rootcint makes the *Dict.(cpp/h) files
o.k. (i
guess), but when the makefile tries to build the *Dict.cpp, it
chokes. hard.

  • there several hundred ‘^@’ characters at the top of the *Dict.h
    file, which
    the compiler says ‘ignoring null character…’. maybe not a problem
    but…

  • it complains about syntax errors for all the ‘extern
    G__linked_taginfo …’
    lines

  • many other incomprehensible errors follow…

i checked my makefile and my win32gcc compiler options appear to be
precisely the same as in the root CVS area…
i’ve tried both with the latest gcc (3.4.4) and the previous one
(3.3.3).
i saw somewhere in these forums that 3.3.3 is preferred

i tried pulling over the *Dict.(cpp/h) files from my macosx build and i
get the same errors.

so, i used TGuibuilder to make the world’s simplest Gui (one window and
a Quit button only), and using the same makefiles and environment i get
the same errors on the dictionary compile step… i attached a tarball
of this example code which includes the makefile…

does anyone notice anything wrong? many thanks in advance!

  • bill llope

p.s. my student daniel is sending this message becuase i can’t
find a forum admin to approve my joining these forums… thanks
again

windows environment info:

gcc --version
gcc (GCC) 3.3.3 (cygwin special)

uname -a
CYGWIN_NT-5.1 al-xp 1.5.21(0.156/4/2) 2006-07-30 14:21 i686 Cygwin

echo $ROOTSYS $LD_LIBRARY_PATH $DYLD_LIBRARY_PATH
/cygdrive/c/root /cygdrive/c/root/lib /cygdrive/c/root/lib

root version 5.12/00, installed from win32gcc binary. BTW i was
able to compile root 5.12/00 from the sources in this environment
without any problems…


test.tar.gz (65.5 KB)

Hi,

it works nicely for me when using gcc 3.4.4-2. That version is still marked experimental, but it fixes a crucial bug in 3.4.4-1. You’ll have to install it by explicitely selecting that version. I tested with a debug build of ROOT, but it should also work in optimized mode. There’s a good chance that the ROOT binaries are incompatible with a current cygwin version - so you might have to build ROOT yourself anyway.

Note that your code misses the implementation of the default constructor, and you misspelled the -Wl,–enable-runtime-pseudo-reloc flag.

Cheers, Axel.

many thanks for the comments Axel!! i’m much obliged…
i’ll try your suggestions tonight…

best regards, thanks again, bill