Stupid question: Static/Dynamic

Compiling, libraries, modules, coding guidelines and porting

Moderators: jesterKing, stiv

Post Reply
bannerboy
Posts: 0
Joined: Sun Sep 05, 2004 1:18 am

Stupid question: Static/Dynamic

Post by bannerboy » Sun Dec 12, 2004 11:06 pm

What's the difference between linux static, and linux dynamic?

LethalSideParting
Posts: 71
Joined: Mon Oct 21, 2002 12:53 am
Location: Bucks, England

Post by LethalSideParting » Mon Dec 13, 2004 1:57 pm

As I understand it, it goes something like this...

Blender has all sorts of dependencies on external files (or "libraries") to help it run. For example, when loading PNG images, rather than reinvent the wheel and write a completely new bit of code to open up PNG files, instead developers might code Blender so that it uses an external library someone else has already written which contains code to open PNG files. This happens all over the place, not just with images...

Blender dynamic does use these libraries, which makes it smaller, faster, and easier to update (eg if your PNG code has a bug and needs updating, you only have to update 1 file on your system, rather than every program that opens PNGs). On the flipside, if you're missing even 1 of the libraries Blender dynamic needs to run, it won't.

Blender static doesn't use these libraries (everything needed is stored inside the Blender executable), so it's bigger and more of a pain to update. On the plus side, it's pretty much guaranteed to work no matter what libraries you do or do not have on your system. On the downside, it's slower (for example, if you have hardware OpenGL acceleration, Blender static can't use it).

If you're not sure which to use, give dynamic a try first. If it works, great :) If not, give static a go.

LethalSideParting

SirDude
Posts: 233
Joined: Sun Oct 13, 2002 7:37 pm
Location: University of Minnesota (USA)
Contact:

Post by SirDude » Mon Dec 13, 2004 2:20 pm

Just a small clarification on this.

The static version still uses the libraries but it includes the code from them into the binary. So it is bigger as stated, and you don't need your own copy of the libraries to run it. With the shared version you will need these extra libraries.

If you want to see more of whats going on download both
and try running ldd (path to blender) on each of them and notice the differences.

Post Reply