On Sun, Mar 08, 1998 at 10:51:01PM -0500, Daniel W. Burke wrote:
> While researching how well the mud is going to move to c++ immediatly, I
> seem to have come across a problem. I've compiled a copy of it in g++
> fixing all the errors and most of the warnings (the ones I skipped were
> about using signed and unsigned variables for arithmatic), and when I got it
> done, realizing problems with variables declaired 'const', I can't get a
> function to resolve in dlsym (for elf lib's). Is there an inherent problem
> with using libdl.so in c++ or is there another lib I should be using for the
> same affect? :)
G++ mangles function names. You need to either make the functions C
functions (extern "C") or provide mangled names in your table. You can
use "nm <object file name>" to get the mangled names. They'll look
something like "postmaster__FP9char_dataPviPcT3". My specials table is
something like:
#define PROC_ENTRY(proc) { #proc, #proc "__FP9char_dataPviPcT3", NULL }
struct spec_type spec_mob_table[] =
{
PROC_ENTRY(postmaster),
PROC_ENTRY(cityguard),
PROC_ENTRY(receptionist),
PROC_ENTRY(cryogenicist),
PROC_ENTRY(guild_guard),
PROC_ENTRY(guild),
PROC_ENTRY(puff),
{ NULL, NULL, NULL }
};
Eric
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST