comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: trying to link with C++ on Unix
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: trying to link with C++ on Unix [message #13807 is a reply to message #13805] Thu, 10 December 1998 00:00 Go to previous message
steinhh is currently offline  steinhh
Messages: 260
Registered: June 1994
Senior Member
In article <366F2CCC.1DC69990@aplcomm.jhuapl.edu>
"Thomas L. Kusterer" <kustetl1@aplcomm.jhuapl.edu> writes:

> Hi,
> I am trying to access a library in gnu C++ by using wrapper routines
> in C and IDL. I have linked the C and C++ libraries to be position
> independent and sharable but the IDL code runs the C and then says that
> it can't resolve the C++ routine name. I have included the extern "C"
> around the C++ routine names. I have made the C library link with the
> C++.
>
> Does anyone have any ideas?

Let me get this right: The IDL wrapper calls a C wrapper function,
which in turn calls a C++ library function, right? (That's the
way it's supposed to be, normally)

But IDL complains (on loading the shareable) that it cannot find
the C++ library function?

Then your problem is not in IDL, but in the C wrapper.
I suspect that declaring the C++ to be extern "C" is a
bit... hmm... suspect. Shouldn't it be extern "C++"
(if that's allowed...never done this before). 'Cause
that's what it is, I mean. To simplify your testing,
write a C main() program that calls your C wrapper,
then try to compile the thing into an executable.
This should *not* work at the present, if I got your
problem right. Now, try pre-/postfixing the C++
routine name with underscores (one, or two, or...).
Better yet, find out from your C++/C documentation
exactly how to call C++ routines.

If, on the other hand, IDL complains that it cannot
find the C wrapper, then try pre-/postfixing (or drop
the pre-/postfix!) the C wrapper function name in
various ways.

Or maybe it's just that the dynamical loader library path
($LD_LIBRARY_PATH on e.g. Digital UNIX) doesn't point to
where the C++ libraries are? I'm a bit foggy on how this
*really* works, I have to look the thing up every time
I suspect something's wrong about it.

Best of luck,

Stein Vidar
(It would be nice to get some feedback on how your problem
is solved in the end)
[Message index]
 
Read Message
Read Message
Previous Topic: Widget_draw and Scroll
Next Topic: LINKIMAGE/CALL_EXTERNAL/DLM advice

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 06:48:57 PDT 2025

Total time taken to generate the page: 0.87869 seconds