application compiled with C against the .so compiled in C++. I get the
following
undefined symbol:
__process_needed_destructions
When the application is compiled with C++ it links fine against the
.so, but since this this library has a legacy, we don't want to require
all our users to recompile their applications in C++ just to use our
API.
I think this symbol is related to the issue of static initialization
and destruction in C++. C++ compilers insert functions in the main()
routine to take care of initialization/construction and destruction of
global and static objects. C compilers don't do this, of course, hence
the undefined function.
I've read (see pp. 273-5 of Scott Meyers' "More Effective C++")
that there might be other ways of accomplishing global
static construction and destruction without requiring main() to be
compiled with C++. Is there a way to do this with the UnixWare 2.1.3
C++ compiler? I hope so. The enhancements I want to make are
going to be a lot harder (and less fun) if I have to do them in C.
I really hope someone here can help me with this. Please reply
by e-mail if possible.
Thanks,
Paul Dubuc
--
Paul M. Dubuc (614) 860-7836 (voice & fax)
Lucent Technologies du...@lucent.com
Rm. 3s319 http://waterworks.cb.lucent.com/pmd/
6200 E. Broad St.
Columbus, OH 43213-1569
: application compiled with C against the .so compiled in C++. I get the
: following
: undefined symbol: [...]
To do this in the UW 2.1.3 SDK, you need to link (not compile) the
C main with CC rather than cc.
If you are using the UDK, this works even if the main is linked with cc.
--
Jonathan Schilling SCO, Inc. j...@sco.com