Programming :: SDL Static Library - Shared Library ?
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
ADVERTISEMENT
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
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
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
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 15, 2011
I have visited these boards a few times, but never posted. Here's my problem: I was given the source to a program and asked to get it running on a 64-bit Debian 2.6.26 machine. Currently it is working on 2 64-bit OpenSUSE machines.
The application uses TCL TK for a GUI and everything compiles just fine; however, on startup, the user must enter one of three possible modules to load; when attempting to load these modules (tcl 'load' function), I receive this error:
Code:
Error in startup script: couldn't load file "../Build/libMpf.so": libTransReaders.so: cannot open shared object file: No such file or directory
while executing
"load ../Build/libMpf.so Mpf"
("eval" body line 1)
invoked from within
"eval load ../Build/${px}${i}${sx} $i"
[Code]...
View 8 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
Feb 26, 2010
I have written a simple library and ended up with a .so file. I have a header file from writing the code that describes how to use the functions in the source code I have written. I think this .h files needs to be available to other programs that access this code.
I have seen lots of tutorials on how to copy the .so file to the relevant directories and make links with the version number. What I can't find is where to put the header file so that any programs I write to use my new library can access the header.
Hope this makes sense. For example, I might use <stdio.h> normally, I will need to access <mylibrary.h> once mylibrary.so is loaded (as far as I understand!)
It's weird, I've been using C compilers for embedded processors over ten years now and never given a second thought to how libraries and headers work behind the scenes!
View 6 Replies
View Related
Apr 12, 2014
I have written a shared library and successfully used debhelper 9 to create a Debian package from source using a Makefile generated by cmake. I then went about writing a python wrapper to that library and wish to package that wrapper in with the library so I can have a single distributable rather than 2 separate ones.
All of my attempts so far have me placing my python source and a setup.py file in the same directory as the makefile at the time where I call debuild.
From here I have tried a couple different configurations to my debian/rules file as seen below:
Attempt 1:
# -*- makefile -*-
%:
dh $@ --with-python2 --buildsystem=python_distutils
This try seemed to package up the python stuff nicely but proceeded to ignore my makefile for the shared library and therefore ultimately failed.
Attempt 2:
# -*- makefile -*-
%:
dh $@ --with-python2
This try ran make, but completely ignored the python stuff. From some research I have gathered that the --buildsystem flag tells debuild to ignore any makefiles in the directory, which obviously causes a problem in my case.
Another attempt was to modify the build dependency to first run make and then call the python build process that file looked like this
Attempt 3:
# -*- makefile -*-
build:
dh $@
dh $@ --with-python2 --buildsystem=python_distutils
%:
dh $@ --with-python2 --buildsystem=python_distutils
This appears to somewhat work as both processes do build, but a few of the python files are still not getting installed.
Is this the way I should be going about doing this? I've noticed that most python wrappers tend to package themselves individually and then make that package dependent on the library it is attempting to wrap.
View 0 Replies
View Related
Mar 18, 2010
I am currently having an application package which provides some applications.however API's for the same will be provided by third party.Currently i am using a dummy functions in my code.Now i have a release by the third party for the first Api version.They have given a set of .so libraries.How do i integrate this with my application?Also i need an idea in general to how to go ahead with programming in such a development scenario where in it is distribued?
View 3 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
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
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
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
View Related
Jul 13, 2011
How can I see if a shared library is currently loaded? (i.e. system-wide, process agnostic)How can I see all shared libraries loaded by a process?
View 2 Replies
View Related
May 2, 2011
I built a shared library for some API functions (C files) and compiled them with gcc. Now I'm writing a c++ application (compiling with g++) and want to link my C API shared library and be able to use it from my application. Is this possible? At first instance, it's not quite working for me. I was able to link my shared lib just fine with a C application but got an "undefined reference to `apiFunction()'" error when attempting to do it with g++. Just want to see if anyone has any insight on this subject and make sure this mix is even is allowed.
View 1 Replies
View Related
Feb 18, 2010
I am trying to install the WebSphere MQ Client on a Red Hat Version 5 server with OS x86_64bit.. When I try the first step of there process it fails trying to find shared libraries:ERROR: Installation will not succeed unless the license agreement can be accepted. The MQ Client is 32 bit, but I am told it should work on 64 bit server...
View 2 Replies
View Related
Nov 19, 2010
I need a design which requires complete modularity and speed. I have a huge monolithic process that i'm seperating now with individual modules as libraries.I'm just worried how to go about the no of shared libraries? for example can i have 10 shared libraries in place of 1? what will be the advantage in that case?
View 2 Replies
View Related
Feb 11, 2009
I am using Centos 5.2, and I installed all of the available gnome and gnome development libraries available via the "add software" menu item. Still, when running some programs, I get the following error message:
"error while loading shared libraries: libzvt.so.2: cannot open shared object file: No such file or directory"
If I understood it correctly, libzvt.so.2 is part of some gnome libs... where to find and how to install them?
View 5 Replies
View Related
Feb 17, 2011
I installed alsaequal URL....l and dependencies ladspa-sdk and caps, all via sbopkg.I'm getting this 'cannot open shared library' error even though that file does in fact exist at the indicated location.Has anyone run into this or successfully installed alsaequal? I also tried on a 13.1 install and got the same result.
View 4 Replies
View Related
Jan 12, 2010
I am trying to add some functions to a Postgresql database. The functions use a shared library which they think is: /usr/lib/pgsql/postgis-1.4.so They say: "ERROR: could not load library "/usr/lib/pgsql/postgis-1.4.so": libgeos_c.so.1: cannot open shared object file: No such file or directory"
I cd to /usr/lib/pgsql/ and do an ls. postgis-1.4.so is there. libgeos_c.so.1 is as well (and it's in /usr/lib/ )
Both the files seem to exist. I cannot copy either of them (cp says "cannot stat '[file]': No such file or directory".
View 6 Replies
View Related
Oct 10, 2010
I'd like to know if it is possible to play shared music library of iTunes on Ubuntu.
View 2 Replies
View Related
Apr 8, 2010
I've been looking awhile now, but no patch for this is yet to be found. Does anyone have more info, or better, a fix? Last version from GNU's ftp server is also vuln as of this writing.
View 3 Replies
View Related
Jul 13, 2011
I am trying to test a shared library that I made in MATLAB. I'm not an expert, so if you need other info, or if i'm just not making sense I can try to clarify, or provide further info.First off:I'm using MATLAB 2011a, compiling c with the MATLAB compatible gcc-4.3, and all of this is running on 64 bit opensuse 11.3.
1) I've made a c shared library, header, and wrapper.
2) I've set the environment variable.
3) I'm having trouble creating an executable to test my .so with
I've also contacted MATLAB tech support, and they didn't help much. They said the wrapper (libatr2.c) is intended to be a template, and may not actually run my library unless eddited. Perhaps I should edit it to reference something called main? I'm not sure how to do that if that's the case.
View 1 Replies
View Related
Jun 24, 2010
I've decided to make the plunge and switch to linux! Actually, I plan to dualboot Win XP and Ubuntu 10.04. I figure I might as well keep XP for a few games and for syncing my iPod nano with iTunes.I want to set up my computer so that my music library on my windows partition will be accessible to Banshee (or perhaps another program) so that I can listen to my tunes in Linux. However, I want to make it so that Banshee can't actually edit my files/tags (I want to leave iTunes in charge of that). I just want it to be able to play the mp3s and aac's (none of my files are in DRM format luckily). So I guess what I am asking, is can I make my iTunes folder on the Windows partition READ-ONLY to the Linux OS maybe?
View 1 Replies
View Related
Jun 22, 2011
I am able to build a shared library under solaris with
/usr/local/bin/g++ -G -o output.so file1.o file2.o file3.o.
How do I build the shared library under linux using the same files?
I have tried to use the same command /usr/local/bin/g++ -g -o but I got some undefined references, even if those references are defined in one of the object files.
View 3 Replies
View Related
Oct 12, 2010
I'm trying to install Google Chrome on Slackware 13.1 (32 bit) and I have a little problem with shared libraries.The google-chrome applications looks for nss libraries with file names ending in apparently non-standard ways (for me and my system, at least): for example, it looks for libnns3.so.1d, but I have libnss3.so, so I created a symbolic link libnss3.so.1d -> libnss3.so. The problem now is that if I run google-chrome as my usual regular user I still get the missing library error, but if I run it as root I don't get the error anymore (well, it still complains about other libraries missing for the same naming reason, but anyway it's able to find the one I just renamed). The permissions seems fine to me:
Code:
/usr/lib# ls -l | grep seamonkey
lrwxrwxrwx 1 root root 15 Jun 16 22:03 seamonkey -> seamonkey-2.0.4
drwxr-xr-x 14 root root 4096 Oct 12 10:47 seamonkey-2.0.4
[code].....
View 7 Replies
View Related
Nov 30, 2010
I need to find the memory usage of a shared library loaded in Linux environment.
I need this information for deciding on whether to make the library part in to application or a seperate application itself.
View 3 Replies
View Related
Feb 15, 2011
I want to create a Java Servlet that will interface with a shared object (.so) library. The library is a component provided by a SDK manufacturer. This Java Servlet will be hosted on Apache Tomcat running in the Amazon Web Service (AWS) Cloud.
View 2 Replies
View Related