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

Alex Cohn alexcohn at netvision.net.il
Fri Sep 6 13:58:56 CEST 2013


On Sep 6, 2013 12:47 PM, "Lucas Soltic" <lucas.soltic at orange.fr> wrote:
>
> Le 6 sept. 2013 à 09:53, Carl Eugen Hoyos <cehoyos at ag.or.at> a écrit :
>
> > Lucas Soltic <lucas.soltic at ...> writes:
> >
> >> Is there any reliable way of knowing the names of the
> >> libraries that will be created by a standard FFmpeg's
> >> configure & make process?
> >> 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. The annoying point is the
version suffix because of course it changes when I update FFmpeg.
>
> >
> >> This makes it hard to use FFmpeg with CMake which
> >> requires the library name to be already known at
> >> configuration time, in order to add install rules for
> >> example.
> >
> > Why are you using CMake?
> > And why would linkers be interested in the complete
> > file name of the libraries, when I tested last, all
> > sane linkers tried different suffixes...
>
> My issue is both an install and runtime library resolution one.
>
> I have a project that relies on CMake and that needs FFmpeg to work. So
that everything is integrated in CMake, I did things so that the FFmpeg
build is considered as a custom CMake target that will execute FFmpeg's
configure & make. And the other part of my project is setup the common way
with CMake.
>
> CMake allows adding install rules. But to do so I have to give the exact
name of the files that will be installed, and I have to give them before
the FFmpeg libraries are built (at CMake configuration time). In case the
file to be installed does not exist yet at CMake configuration time, as my
custom target create them, CMake knows it first need to execute my custom
target and won't complain.
>
> However at the moment on Linux I only tell CMake to install the .so file
without any version number because I don't know it. So it'll only install
one .so instead of all the .so (links + the real library).
>
> The issue is more or less the same on Windows : I can only know in
advance the name of the dll without any version in it.  So I install that
dll. BUT when using the .lib files produced by FFmpeg's make process with
Visual Studio and executing the program, it asks for the dll WITH the
version in it. So the dll I installed seems completely useless.
>
> Thanks for your time :)
> Lucas
>
> >
> > Carl Eugen

I believe that you can use the "common" name (e.g. libavformat.so) as
custom target, as you did before, but have the custom command copy or
install the libavformat.so.* together wirh it.

BR,
Alex Cohn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://ffmpeg.org/pipermail/libav-user/attachments/20130906/3b3eaf3c/attachment.html>


More information about the Libav-user mailing list