[gclist] Problems compiling with Xlib
Jeff Sturm
jsturm1@home.com
Fri, 07 Apr 2000 22:07:27 -0400
John Palmieri wrote:
> Hello, I'm new to this list. I am writing a C++ program under linux
> that uses Boehm-Demers-Weiser conservative garbage collector. The code
> was compiling fine when I was just writing to the console but now I have
> the backend stuff done I started to move everything to an X display. I
> have read somewhere that X uses GC.
Yes, X defines "GC"... but I believe it means "graphics context" in that
scope. Xlib doesn't do any garbage collection.
> Consequently I am getting duplicate
> symbol compiling errors (I have gc_cpp.h included in mriIObject.h):
[...]
> Is there a way around this? I don't want to use Xlib's defines in the
> backend because I want to keep it frontend independent (Say someone
> wants to create a SVGALib frontend as opposed to an X frontend). Any
> suggestions?
That's why the C++ language introduced namespaces, to avoid that sort of
collision. But if you are using plain C you are a little bit stuck...
though all hope is not lost.
If you can organize your compilation units in such a way that one source
file never includes both gc.h and Xlib.h, you can cleanly avoid the
problem. That's your best alternative.
If you absolutely cannot avoid #including these together, you may be
able to use preprocessor tricks to hide one of the GC symbols.
Jeff