Can I create a shared object by using an static lib?
for example, I have a static lib name liba.a
it offers some interface such a1();a2();
but i do not have the source code of liba.a;
If i would like to create a shared object, and offer the similar interface of
a1 and a2;
Is there a way to fulfill such requirement?
thanks.
Why not just link it as a static library? You gain nothing by converting it to a shared object, and you'd add an extra run-time dependency to your app.
Even if you use it as a shared object you still have to rebuild your app.
And FWIW, you can usually convert a static archive into a shared object like this:
The shared object almost certainly won't have been compiled to be position-independent, so it will require some more work for your run-time linker to load (and may not load on some systems - like a 64-bit shared object on Solaris), but it should work otherwise exactly the same as it it were linked in statically as long as it's relatively basic and simple code.
Converting a static archive into a shared object like that basically gains you nothing in functionality, though, and comes at the expense of additional run-time dependencies.
Just create your wrapper interface functions and call these functions from there. Compile with --SHARED flag usig gcc.
---------- Post updated 05-06-10 at 12:49 PM ---------- Previous update was 05-05-10 at 08:43 PM ----------
Quote:
Originally Posted by achenle
Why not just link it as a static library? You gain nothing by converting it to a shared object, and you'd add an extra run-time dependency to your app.
Even if you use it as a shared object you still have to rebuild your app.
And FWIW, you can usually convert a static archive into a shared object like this:
The shared object almost certainly won't have been compiled to be position-independent, so it will require some more work for your run-time linker to load (and may not load on some systems - like a 64-bit shared object on Solaris), but it should work otherwise exactly the same as it it were linked in statically as long as it's relatively basic and simple code.
Converting a static archive into a shared object like that basically gains you nothing in functionality, though, and comes at the expense of additional run-time dependencies.
Great Advice and very true.
However, on my Linux system what works is as follows:
Thanks.
Hello,
I am new to programming shared objects and I was hoping someone could tell me if what I want to do is possible, or else lead me in the right direction.
I have a main program that contains an abstract base class. I also have a subclass that I'm compiling as a shared object. The subclass... (13 Replies)
Hi,
I would like to create a shared object ( .so).
This shared object
1. uses the functions from a library.
2. Also it should be able to use the global variable in an app
To achieve this what should I do ? 1) To use the functions in the library should I give the -ld option while... (1 Reply)
Hello,
While running a c++ shared object on AIX I am facing below error -
rtld: 0712-001 Symbol __ct__3ETDFv was referenced
from module /bancs/aml/lib/libmonitor.so(), but a runtime definition
of the symbol was not found.
rtld: 0712-001 Symbol etd_insert__3ETDFv was... (3 Replies)
Hi all,
I am developing an application with two components. One "c" binary and one "C++" shared object.
While execution, the shared object crashes out and core dump is created whenever "new" is executed. But if i use malloc this will work perfectly.
I tried to use dbx. Below given was... (1 Reply)
im not good with this stuff but the app guys game to me with a problem with there c++ program on a new box, any ideas?
bin- ./qeng
Bus error (core dumped)
bin- ./gdb qeng core
Wildebeest is free software and you are welcome to distribute copies of
it under certain conditions; type "show... (4 Replies)
Hi All,
I have a problem with the shared objects setup in AIX. We have a customized shell written by the developers over here. When i issue a MQ Series command (mqsilist) it is giving the error as . All the commands making use of this libImbCmdLib.a.so is failing. But when executed in normal... (1 Reply)
Hi
I have a multithreaded daemon(server) which will accept connections from various clients and sends back results to them.
In order to serve my daemon clients, it has to establish a TCP connection to another server(vendor supplied which is listening on a specific TCP port) and gets the... (11 Replies)
Hi,
When using shared objects on AIX 4.3 i am getting runtime problems.
I have a small sample program which links to a shared object libray, oracle and system related libraries.
At runtime it fails (gives segmentation fault and coredump ) in one proc file when executing login statement.
But... (0 Replies)
Hi All,
I created the share object file using
gcc -shared -fpic mypp.cpp -o myp.so
but, pls tell me how to link this .so file to my client program.
Thanks (0 Replies)
Hi,
I have been trying to create a sharef object on my HP UX 11 machine
(HP-UX <myhostname> B.11.00 A 9000/879 ...... two-user license)
to create the shared object first I am creating the object file using
cc -Aa -c +z dyn.c
(I use -Aa and +z as per HP's manual on linkers ) to create the... (0 Replies)