[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
RE: [LI] how to implement shared objects??
Thanks for this information.
I feel this is kind of statistical linking of shared libraries. Is there any
way to dynamically link them.?For example, I don't want to keep this .so
library in memoy unless I require it at particular point of time.
Before I call the functions in this .so file, can I load the .so file & when
I am done with that, can I unload this file
from memory?
Regards
Guruprasad
> -----Original Message-----
> From: SHRIDHAR N. DAITHANKAR [SMTP:shridhar.daithankar@xxxxxxxxxxxxxxxx]
> Sent: Tuesday, January 11, 2000 9:34 AM
> To: linux-india@xxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [LI] how to implement shared objects??
>
>
> Hi
>
> Shared objects can actually shared libraries.
>
> 1)How to create them?
>
> Say you have three files a1.c,a2.c,a3.c, which you want to put in shared
> libraries.
>
> $ gcc -c a1.c //This will produce a1.o, object file
> $ gcc -c a2.c
> $ gcc -c a3.c
> $ ld -shared -soname mylib -o mylib.so a1.o a2.o a3.o
>
> This will produce a library named as mylib.so. -shared flag tells linker
> to create shared onjects. -soname flag sets internal name field of the
> library. When you link the library with -lmylib, it searches this name
> field rather than the filename. As usual -o flag sets the name of the
> output file. .so is conventional extension for shared objects. Optionally
> version is also included in the name. Do a 'ls -al' in /usr/lib for
> examples.
>
> 2)To use library.
> Say you have split the source files of your library in .h and .c format.
> You create shared library as described above. Now while writing the
> application program, include those .h file in your program. This is
> required by the compiler to find the function and variable declaration.
> Compile the file as follows.
>
> $ gcc myapplication.c -o myapplication -lmylib
>
> Here -l is to tell the linker to link mylib. Actually mylib is additional
> place to look for object code that matches the decleration in the code.
>
> Typically libraries are placed in /usr/lib and /usr/local/lib. The include
> files are placed in /usr/include and /usr/local/include.
>
> See 'man gcc' for -I and -L flags, for how to set those directories as you
> wish.
>
> Please correct me if I am wrong.
>
> Hope this helps.
>
> Bye
> Shridhar
>
>
> On Tue, 11 Jan 2000, Guruprasad, Mahendrakar V (IE10) wrote:
>
> >
> >
> > > Hi Everybody,
> > > I heard that just like DLLs in windows , we have shared
> > > objects (.so files) concept in Linux.
> > > Will please anybody give me the information (how to write
> > > and all)
> > > about the same?
> > > I am also interested in knowing how the .so files can be
> > > loaded dynamically & if not needed should be unloaded from memory at
> run
> > > time.
> > >
> > > Thanks in advance
> > >
> > > Regards
> > > GURUPRASAD V.M.
>
> --------------------------------------------------------------------
> The Linux India Mailing List Archives are now available. Please search
> the archive at http://lists.linux-india.org/ before posting your question
> to avoid repetition and save bandwidth.
--------------------------------------------------------------------
The Linux India Mailing List Archives are now available. Please search
the archive at http://lists.linux-india.org/ before posting your question
to avoid repetition and save bandwidth.