[Libav-user] How to know the output libraries names

Carl Eugen Hoyos cehoyos at ag.or.at
Fri Sep 6 12:11:10 CEST 2013

Lucas Soltic <lucas.soltic at ...> writes:

> >> On Unix platforms there are ".so" and ".so.version", 
> >> and on Windows, there are ".dll" and "-version.dll".
> > 
> > I probably misunderstand but are you suggesting that we 
> > name the Unix shared libraries *.dll ?
> > (Or the Windows shared libraries *.so ?)
> Hi,
> No, Linux correctly uses .so and Windows .dll.

I did misunderstand...

> The annoying point is the version suffix because of 
> course it changes when I update FFmpeg.

It should not change.

Or in other words: It only changes if updating your 
libraries would break your existing applications, 
so the change was (really, really) needed.

Sorry, I am not sure if you are 100% comfortable with 
how dynamic linking (on unix-like systems) work, so 
I am unsure what your problem is.
(To make sure: I am not implying I am.)

You simply need the versions at runtime, they have 
absolutely no relevance at compile time (because 
when installing the libraries, a symbolic link is 
added to make sure you link against the current 
library version while having old version/versions 
still installed). At compile time, you should 
always link against "xyz.so" (or actually "xyz" 
because the linker will add "so"), not ".so.99".

I am *guessing* that you actually want static 
linking in your case.

Carl Eugen

More information about the Libav-user mailing list