From: Stephen Jackson <Stephen.Jackson@panting-deer.org.uk>
To: Lonnie Cumberland <lonnie_cumberland@yahoo.com>
Cc: pgsql-interfaces@postgresql.org
Subject: Re: [SQL] g++ not working for postgresql extension languages?
Date: Sun, 15 Apr 2001 17:10:29 +0100
Message-ID: <3AD9C7F5.902BAE74@panting-deer.org.uk> (raw)
References: <20010415004615.35217.qmail@web12508.mail.yahoo.com>
Lonnie,
C++ uses "name mangling" to permit overloading of functions. Therefore
your function concat_text() ends up with a very different name. You can
probably get round this as follows:
#ifdef __cplusplus
extern "C" {
#endif
text *
concat_text(text *arg1, text *arg2);
#ifdef __cplusplus
}
#endif
This tells the C++ compiler that concat_text is a "C" name - so don't do
name mangling. This is a common technique for making C++ code callable
from C, although I haven't used it in the specific context you are
using.
Hope this helps,
Stephen Jackson
Home: Stephen.Jackson@panting-deer.org.uk www.panting-deer.org.uk
Work: Stephen.Jackson@looksystems.co.uk www.looksystems.co.uk
Lonnie Cumberland wrote:
>
> Hi All again,
>
> One more thing that I have tried.
>
> If I now do a similar thing as in my previous message with the "funcs.c" file,
> but this time with the "funcs.cc" file then I can get:
>
[snip]
>
> trdata=# select concat_text('a','b');
> ERROR: Can't find function concat_text in file /test/funcs.so
> trdata=#
> --------------------------------------------------------------------------
>
[snip]
>
> text *
> concat_text(text *arg1, text *arg2);
>
[snip]
> so now I do not understand why the "gcc" version works and the "g++" version
> does not?
>
> Just a side note in that I can easliy compile c++ the examples in the
> interfaces/libpq++ directory without any problems so that this is very strange
> to me.
>
> I really need the "g++" version to work correctly as well?
>
> Any ideas anyone?
>
> Cheers
> Lonnie
>
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-interfaces@postgresql.org
Cc: Stephen.Jackson@panting-deer.org.uk, lonnie_cumberland@yahoo.com
Subject: Re: [SQL] g++ not working for postgresql extension languages?
In-Reply-To: <3AD9C7F5.902BAE74@panting-deer.org.uk>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox