PDA

View Full Version : Linux libraries .a and .so



{MSX}
29-11-2004, 08:02 PM
Hi! i was asking myself what's the differences between ".a" libraries and ".so" libraries.
Also, i was compiling ODE from sources for my game, but it only generates libode.a. What about libode.so ? :)
How can i make it ?

Thanks!

WILL
30-11-2004, 02:42 AM
I don't have as much Linux experience as I'd like, but I know that an .so file is the static equivilent of a DLL. It stands for, if I'm not mistaken, 'Static Object'. And for the majority of the common .so files are normally stored in a standard location within the installation. Things like OpenGL, OpenAL, or anything else like that...

As for the .a I haven't a clue.

Lightning
01-12-2004, 06:04 PM
.so(shared object) files are the *nix equivalent of a .dll(dynamic link library)
.o(object) files are the GNU tools equivalent of .obj files and are used in conjunction with .a(object-archive) files.
Basically you should be able to link .o/.a files using FPC, look @ docs, see {$linklib } directive.

{MSX}
01-12-2004, 06:45 PM
[quote="Lightning"].so(shared object) files are the *nix equivalent of a .dll(dynamic ]

Thanks! I don't think that i can link the library in my exe, becouse it is dinamically loaded by the headers (odeimport.dll), like for example OpenGl are in DelphiJedi.
I need to obtain the .so.. do you know how can i do this ? :P

Thank you :mrgreen:

savage
01-12-2004, 10:37 PM
This is what I was told to do and it worked for me on Mandrake 10...

<quote>
In the top-level-directory Makefile, add this line after line number 250 (the
command which creates the static library)

$(CC) -shared -o libode.so $(ODE_OBJECTS) -L$(OPCODE_DIRECTORY) -lopcode -lm
</quote>

{MSX}
02-12-2004, 07:56 AM
This is what I was told to do and it worked for me on Mandrake 10...

<quote>
In the top-level-directory Makefile, add this line after line number 250 (the
command which creates the static library)

$(CC) -shared -o libode.so $(ODE_OBJECTS) -L$(OPCODE_DIRECTORY) -lopcode -lm
</quote>

Thanks! i'm trying this evening.

{MSX}
10-12-2004, 12:08 PM
Thanks! i'm trying this evening.

It didn't worked.. :(

savage
10-12-2004, 04:08 PM
I could send you one I already have.

{MSX}
10-12-2004, 05:02 PM
I could send you one I already have.

That would be nice :P Thank you!
What type do you have? i'm looking for the last version, release, with mesh geom support.

You should already have my email address

savage
10-12-2004, 07:10 PM
Hmm I may try to build it again with the latest source then

{MSX}
11-12-2004, 06:13 PM
Hmm I may try to build it again with the latest source then

Thanks :P

{MSX}
17-12-2004, 07:22 PM
I did it!!! :mrgreen:
I was finally able to compile a new libode.so. The line to add is:

$(CC) -shared -o libode.so $(ODE_OBJECTS) -L$(OPCODE_DIRECTORY) -lm

at line 333. (note that the library is put in the main directory and not under lib)
I hope it's correct, i don't understand anything about those damned makefiles. I hate them! :P Thanks god we don't need them with Pascal :P

Ok, now the main improvement is that it now has dWorldQuickStep for a quick algorithm. I can run 50+ car in my game :P I'll have to post a screenshot.

One problem is that the dCreateCylinder procedure doesn't exists anymore!! Why ?! :scratch: Should we all use the capped cylinder ?

Also, in the old library the dGeomSetData didn't worked (dGeomGetData always gives nil). I hoped that it was ok in the last release but i still can't make it work. Any suggestion ?

Bye

EDIT: The screenshot (http://funkycars.sourceforge.net/shot7.jpg) :P

savage
17-12-2004, 08:04 PM
Sorry I could not do it for you, but I was a little busy getting the new site up and running

{MSX}
17-12-2004, 08:20 PM
Sorry I could not do it for you, but I was a little busy getting the new site up and running

No problem savage :P

savage
17-12-2004, 10:04 PM
Re you Geom question, I would suggest sending an email to Mattias and asking him about it. Best to go straight to the source.