Re: shared libs in circle (was: C++ compiler warnings with dlsym())

From: Mark A. Heilpern (
Date: 03/04/99

At 07:07 PM 3/3/99 -0500, you wrote:

>   Writing a shared library is no different from writing a normal
>program.  The only difference is there is no 'linking' stage of the compile.
>Also, you cannot have a main() function.
>   The linking occurns runtime when you open the shared library (or
>all at once when you open the shared library, depending on your open options).
>You just need to be a bit more careful when write the things.
>   You also need to compile it with the -shared and -rdynamic... hmm
>and i also use -nostdlib for some reason, maybe that's just with that
>set of plug-ins.  Dunno, i chose to do some funky makefile magic to make
>compiling modules really easy... it makes my brain hurt to remember all
>those wierd make options... :)

No linking stage would mean you have a bunch of .o files (assuming more than
1 .c goes into the library). How do you create the .so from the .o's?
(Sorry if this
is a basic question for shared object creators; hopefully other CircleMUD
coders are finding mud-related value in this.)

Without looking at other source and without further man-page reading, I'm
assuming if I have: foo.c and bar.c; and I "cc -c *.c" to create foo.o and
I can then "cc -shared -rdynamic -nostdlib foo.o bar.o -o"; is
this off base?


     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  |

This archive was generated by hypermail 2b30 : 12/15/00 PST