Multiple inclusions cause multiple definitions => compile error

mitchell mforal.n... at gmail.com
Fri May 23 22:29:01 UTC 2008


Adrian,

This is a result of my previous thread on multiple inclusion errors.

Here's what I'm working with:
  css.rl - a CSS parser
  javascript.rl - a Javascript parser
  html.rl - a HTML parser that 'include's css.rl and javascript.rl.

css.rl 'include's a common.rl while javascript.rl and html.rl do not
(as you asked in my previous thread)

I get no compilation errors from ragel, but when I compile the
generated C code, specifically html.c, I get 'previous definition was
here' errors from gcc. I went into the code and one of the 2 dozen or
so redeclarations was:
  static const char _html_actions[] = {
    ...
  }
It was declared 3 times throughout html.c. I removed the javascript.rl
'include' statement and tried to compile again. This time the same
_html_actions was declared 2 times. It seems 'include' has some
strange effects.

Any idea what's going wrong? Do you need more information?

Thanks,



More information about the ragel-users mailing list