Subject: Re: C++: aaaaaarrrrggghh!
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: J.T. Conklin <jtc@NetBSD.ORG>
List: port-mac68k
Date: 12/20/1996 16:30:45
> > OK, I'm really at my wits' end on this one. I have completely reinstalled
> > base12 and comp12. I've done everything short of formatting the hard
> > drive. As a recap: *any* C++ program (even a text file with no includes,
> > just "main() { return 0; }"), will compile and link ok, but when I run it
> > (or any existing pre-compiled c++ apps I have), I get:
> >
> > % ./foo
> > /usr/libexec/ld.so: Undefined symbol "_tgetstr" in foo:/usr/lib/libcurses.so.2.1
> >
> > I am *not* including, implicitly linking, or in any way involving
> > libcurses!! What on earth is going on???
>
> It looks like libg++ implicitly includes libcurses, for the CursesW stuff.
The combination of CursesW and shared libraries causes all sorts of
problems -- not just with NetBSD. There has been serious talk about
removing CursesW from libg++ among the folks at Cygnus who maintain
it.
IMO, it's almost to the point that we coan remove all of the "libg++"
part of libg++ (leaving stl, iostreams, etc.). We don't use any of it
ourselves, and I think C++ programmers will probably be using stl for
their abstract data types instead.
--jtc