General :: Difference Between Static And Dynamically Linked Library?
Aug 30, 2010
Libraries have always been ambiguous to me. I would love to have a clear understanding of them. Here's what I know so far... Ok I know that libraries are a bunch of functions and definitions in C that binaries use. I also understand that static libraries are used by the binaries in /sbin:/usr/sbin:/usr/local/sbin and dynamically linked libraries are used by the binaries in /bin:/usr/bin:/usr/local/bin So why have statically linked and dynamically linked libraries? I know that dynamically linked libraries are used to save space. Otherwise each binary would need its own private copy of a library. So dynamically libraries are used to save space.
1. Where are the static libraries and the dynamically linked libraries located in the file structure?
2. Where does ldconfig fit into all of this?
3. Would a rootkit affect both statically and dynamically linked libraries? I would think yes unless the libraries only have read permissions.
4. If the above is true, is there any reason for your libraries to have write permission other than when you want to edit them?
View 5 Replies
ADVERTISEMENT
Apr 19, 2011
Given the code below:
<<snip>>
jlfdiaz@narcea:/tmp$ cat foo1.c
int foo1() {}
jlfdiaz@narcea:/tmp$ gcc -c -o foo1.o foo1.c
[code]....
Is possible to know with "nm", "ldd", "ar" or other unix similar command that executable "a.out" is statically linked with "libfoo1.a".
View 1 Replies
View Related
May 21, 2010
I'm interested in modding an open-source turn based game called Advanced Strategic Command or ASC, but to do that I need bunch of libraries. Installing those libraries is very easy in linux, I know but the thing is I'm working with windows in which the building of the libraries is a bit more complex, as you probably know. One of those libraries is the ligsigc++, I'm using VC++ but haven't been successful in building the libsigc++ in VC++. I considered making my life easier with Cygwin (a unix shell for windows) and simply executing ./Configure, Make. I's worked like a charm and the library dll it produced is named cygsigc-2.0-0.dll which made me wonder is compiling a library in cygwin to be linked with VC++ perfectly ok? That is is there any difference in compiling in cygwin and VC++?
View 2 Replies
View Related
Mar 31, 2010
To create a static library, or to add additional objectiles to an existing static library, I can use a command like this:ar rcs my_library.a file1.o file2.oBut how to add an existing static library to my own static library. I have created my own static library using the command above and want to link against the library libuuid.a (placed in /usr/lib/).
View 6 Replies
View Related
Jul 6, 2011
I would like to make gcc to link one lib (pthread in the example) statically, and the rest dynamically.
(See the example .c file at the end of this post.)
compiles fine, but every lib is linked dynamically.
Now every lib is linked statically
Not a dynamic executable
I would like to link the libpthread statically and the rest dynamically. Is it possible?
[url]says if I give the full path to the .a lib then it will be linked statically:
So for me it does not work.
On other sites I found that I should use -Wl,-Bstatic -lpthread -Wl,-Bdynamic, but it also doesn't work:
So, how can I do that?
Machine: Linux 2.6.16.60-0.27-bigsmp #1 SMP Mon Jul 28 13:06:32 UTC 2008 i686 i686 i386 GNU/Linux SLED 10
As an example I used a little demo program from [url]
Here is the code:
View 4 Replies
View Related
Apr 28, 2010
I'd like to get path of one library to link it dynamically in my program. Probobly the best way would be to add macro to my configure.ac file.
View 2 Replies
View Related
Apr 7, 2009
I'm reading about shared, static, and dynamic libraries. What is SDL? Is it static, shared, or dynamic?
I always thought a library would be a lot of .h and .cpp files compiled separately into .o files and then if you compiled your own program you could use the -l parameter to link the library and it was all compiled together. Now I'm not so sure.
I don't even see any SDL .cpp files in my system anywhere. All I have are lots of SDL .h files in /usr/include/SDL and I don't really understand the code in them.
I'm making a wild guess here: SDL is a shared library. SDL itself is NOT compiled into my program, therefore SDL must be on any system my program tries to run on. When I compile and link SDL all it needs is the header files to know what SDL function and objects it can use. And then on every system it uses an already compiled SDL shared library thingy somewhere.
So... where is that part of SDL? All I can find are header files.
I'm thinking the advantage of shared libraries is that someone could say update SDL on their own system and take advantage of the new features without having to download new executables with the new version of SDL compiled into them for every program that uses SDL.
So if I'm making an editor and a game engine and they both use a lot of the same .cpp and .h files that I wrote and I'm tired of updating one and then the other and I need to turn them into a library, then a shared library might be kind of a silly solution. I could just make a static library. Right? Because it's not SDL. Nobody else is ever going to use this library.
View 6 Replies
View Related
Feb 20, 2010
I've got a shared (Windows/multiuser Linux) laptop, and I've got installed World of Warcraft and some steam games in Windows. With steam games, there is (almost) no problems. I've installed steam in Linux, and soft linked the 'steamapps' directory (per-game compatibility is another issue). With WoW, the problem is different. I would like to have almost (but not) all files. Under World of Warcraft, every file and directory must be linked except the Interface directory and WTF/config.wtf file (so every user can play with their own settings and addons). How can I have a mix of linked and not linked files without linking every file? If I link manually every file/dir, when updating from Linux other users and Windows Wow is not updated; when updating from Windows, new files remains "unlinked".
View 3 Replies
View Related
May 2, 2011
what are libraries and what is the diff between static and dynamice libraries.
View 1 Replies
View Related
Aug 25, 2010
Our application uses a dynamically loaded shared object library (codec library) to compress and decompress audio streams.
There happens to be several static and global variables in this shared object library. Hence it is not possible to process two interleaved unrelated media streams using this shared object codec library because each stream corrupts/changes the contents of these static/global variables.
Is there a way through which a context save (save contents of data segment of shared object) and a context load (load previously saved contents of data segment of shared object)operation can be performed on the shared object library. This way the context for each media stream can be saved and loaded before and after processing the "other" media stream respectively.
View 3 Replies
View Related
Nov 18, 2009
How can we convert a dynamic library (filename.so) to a static library (filename.a) using gnu gcc . Can we get a static library form a dynamic library . I saw a few post in which the conversion form a static library to a dynamic library is mentioned but, unfortunately, not the other way.
View 4 Replies
View Related
Aug 27, 2009
My code needs to link to some libraries. In my project file, I specify linker to link to abc library, for example. By default, does gcc link to libabc.a or libabc.so ? What if I really need to specify static or shared, how do I do that?
View 4 Replies
View Related
Feb 10, 2010
The following is my Makefile, I wanted to add a staic library named libtimer.a. I'm using the following Makefile. Please let me know how to add this static library:
Makefile:-
Quote:
all:gcc -Wall -lrt -lm -pthread usbserialapp.c usbserialinit.c environ.c -o usbserial
It produces "usbserial" executable.
View 4 Replies
View Related
Jun 3, 2009
I have been working on this for a long time.
I could get the static libcurl library ( a "libcurl.lib" file and a "curl.h" file), which supposed to be working under Windows.
Yet I tried Visual c++ 6.0 but it wasn't working at all.
Some idea on that ? I don't mind to try MinGW and Dev C++ if it will really work. (Cygwin is not good since it require client to have cygwin.dll in run-time folder).
View 1 Replies
View Related
Apr 5, 2010
By issuing the 'nm' command on shared library (internally using one static library), the functions exposed by static library is also being listed, Which allows to use internal functions which is of course not intended. I have one static library having A(), B() and C() functions. Creating one shared library which has function XYS() that is using A() and B() functions from Static library. While doing 'nm' on shared library, all the static library function are being listed.
Static Lib:
#include<stdio.h>
void A(char *msg)
{
printf("
[code]....
View 4 Replies
View Related
Jan 21, 2010
I can't seem to find a way to do this, so maybe it's not actually possible, but I was wondering if there was a way to list all files that link to a file.
For example.
touch a
ln a b
ln a c
I want to find out what files link to a (not symlinks, mind you), assuming that this is more complicated (they are spread around to different directories).
I kind of understand about the filesystem storing links in one area and data in another, so I understand it probably takes more work to find a link from a file location than the other way around.
View 1 Replies
View Related
Sep 2, 2010
currently i am wanted to clean up my proj area but the problem with rm i am facing is some copy remain in disk with linked i am meaning soft link
A linked to B
B linked to C
C which is on other directory
A & B are on same folder
know when i run
rm -rf A
it removes only A & B but the C remain on the disk how i can remove C from the disk.. using the the same command..
View 2 Replies
View Related
Mar 25, 2010
Which command will tell me whether a directory is a symbolic link or not?
if it is a symbolic link, is there another command to show me which directories it is linked to?
View 1 Replies
View Related
May 5, 2011
I know this is somewhat lame, but I remember back in college the MOTD on some of the systems was a random quote. I always wanted to do that. It seemed really trivial, but still neat and clever.
I searched a bit and don't see anything built-in for CentOS, so I was considering writing a Perl script to parse the RSS feed from a quotes site, then update /etc/motd with a random quote from the feed. This would nearly guarantee I could have this on any distro with identical results. Does anyone know of anything that already exists? Is anyone interested in using a script that I write to have the MOTD updated with random quotes themselves, or am I the only one? I'm perfectly willing to share the result when I'm finished.
View 1 Replies
View Related
Feb 22, 2010
I'm looking for a way to dynamically modify a fied in the SQL file.
Example,
INSERT INTO `TABLE` VALUES(1AADFDF,DFF33D,10023,SOMEDATA, SOMEDATA);
INSERT INTO `TABLE` VALUES(1AADFDF,DFF33D,10098,SOMEDATA, SOMEDATA);
[code]....
The third field in this SQL file is what needs to change to n+1
"10023" needs to change to "1"
"10098" needs to change to "2"
"10123" needs to change to "3"
"10983" needs to change to "4"
etc...
I tried with awk and sed, but since both require the usage of ' (single quote), my variable fails to get updated. I know i can use cut and recreate the sql statememnt, but i believe there should be easier way using sed or awk. Would anyone know of any creative way to get this to work in one-liner? This needs to be a part of the script preferable without making call to external file.
View 1 Replies
View Related
Jul 27, 2010
If I do setenv DISPLAY other_machine:0 and launch a gui application I can send this application to my other_machine Is there any mean (utility or whatever) to send an OPEN application to another machine (by its pid eventually) So if I have an nedit open, and its pid is 13245, I could do something like send_to_display pid=13245 machine=other_machine:0
View 1 Replies
View Related
May 9, 2011
How is Motion Detection software interpreted, and who is responsible for the interpretation operation? Is motion.conf linked to a specific libraries?
View 10 Replies
View Related
Aug 28, 2011
Is it possible to change the GNOME desktop background during some period of time by just a random phrase from the list on black screen? Will is seriously load the CPU and consume battery life?
View 1 Replies
View Related
Apr 15, 2010
I'm a starter here in linux, I have written a driver code and in that, I register my character devices by passing 0 for the major number.
To set up I used to use mknod command from terminal to create node,
Is there any method to create node dynamically from driver code during initialization and delete them at cleanup time?
View 1 Replies
View Related
Jun 7, 2010
I have an archive directory that needs to be cleaned up once per quarter. The top level (/data/archive/*) directory names change daily, as well as the subdirectories and the filenames (the application names everything according to date). Also, there are two top level directories, bin and incoming, that we can't touch. I want to write a shell script that loops through the 15 or 20 top level directories and deletes all files and subdirectories older than 3 days (skipping the bin and incoming folders). Can someone get me started on a script? I am kinda new to shell scripting.
View 2 Replies
View Related
Aug 4, 2011
./configure script fails to configure libsf. Please check the following last few lines of configure script error.
But find command shows the following;
It seems the file libdb does exist. man dbopen displays man page for dbopen. I also tried to ln -s /usr/lib/libdb.a and libdb.so /lib dir but all were in vain.
View 6 Replies
View Related
May 27, 2010
I think that the solution is very simple, but I cannot reach this solution. I'm trying to build an B.so that uses A.so.
A.so is compiled using C;
B.so is compiled using C++;
Inside "Aso.h" file I'had declared:
Code:
#ifdef __cplusplus
extern "C" {
#endif
[code]....
There's no error to compile that, this library seems to be compiled correctly, but using the "nm" command the Aso.so functions appear with "U" of undefined. Trying to build an executable using the Bso.so library, I got this error: /lib/../lib/libBso.so: undefined reference to `foo(int, int, int)' I think that to solve this problem it's only link the Aso.so with the .o files generated at the compilation phase of my Bso. Using the "ldd" command I'm able to see that Bso.so depends on Aso.so, so what am I missing?
View 2 Replies
View Related
Feb 12, 2010
I'm having some problems on the line with ***. This is from a OpenEntidade.java class file and I'm trying to update EmprestadorView's variables.
EmprestadorView.java
public class EmprestadorView extends FrameView {
...
OpenEntidade.java
-----------------
public class OpenEntidade extends javax.swing.JFrame {
[code]....
View 2 Replies
View Related
Apr 26, 2010
I got this message on Friday from just one domain. uote:mailsrv.forthnet.gr #<mailsrv.forthnet.gr #5.5.0 smtp; 554 5.5.0 Your message was considered to be spam by the FORTHnet Antispamming Policy and was not delivered to the recipient. The following spam tests returned positive for this message:FORGED_RCVD_HELO,RCVD_IN_BRBL. For further information visitWe are not a spamming community but it seems we have a statice IP address that has a Reverse lookup to "myipaddress.static.lyse.net" and not my email domain. Would setting a cname mail.mydomain.no -> myipaddress.static.lyse.net cure this problem or are there more tricks to be performedOnce I have cured the FORGED_RCVD_HELO I can move to getting the IP removed from BARACUDA.
View 2 Replies
View Related
Oct 4, 2010
The shell is bash.
The directory path, /this/is/directory/aa, is actually linked to the path /this/is/link/aa.
So when I cd to the aa directory I am in /this/is/link/aa and there is no /this/is/link/bb hence the error with ls.
My question is how does cd understand relative paths and not return an error the way ls does?
View 1 Replies
View Related