[x264-devel] Dynamic linker uses the "versioned" x264 library, not generic

Loren Merritt lorenm at u.washington.edu
Sun Oct 7 18:09:42 CEST 2012


On Sun, 7 Oct 2012, Elliot Saba wrote:

> The names aren't mangled with the version number inside the shared library,

x264_encoder_open_125

> if that's what you mean, and yes, almost all *nix libraries create a
> library of the form *libfoo.x.y.dylib* (or *.so*, if you prefer linux) but
> they also almost invariably generate a *libfoo.dylib* that is a symlink to
> the "versioned" one, along with a *libfoo.x.dylib*, where *x* denotes the
> "major" version and *y* denotes the "minor" version.  Most libraries are
> setup in such a way that the "major" version preserves the API so that
> bugfixes, etc... can be transparently applied to applications without
> needing those applications to be relinked, whereas major breaking changes
> force a bump up in the major API version number, thus forcing a relink.  My
> guess is the dynamic linker is getting confused by the nonstandard naming
> convention used by libx264, thinking that the *125* in *libx264.125.dylib* is
> a major version number.

125 is the major version number. The only relevant difference between x264
and other libs is that x264 makes ABI-incompatible changes frequently
(whenever we add an option, among other things).

--Loren Merritt


More information about the x264-devel mailing list