[FFmpeg-devel] Fix mingw name of .lib files
Måns Rullgård
mans
Tue Mar 4 21:32:32 CET 2008
Gonzalo Garramu?o <ggarra at advancedsl.com.ar> writes:
> M?ns Rullg?rd wrote:
>>>
>>> instead of the, imo, broken:
>>>
>>> /usr/local/bin/avutil-52.dll
>>> /usr/local/bin/avutil.lib
>>
>> This is intentional. With your proposal, users of the libs will have to
>> know which version to link to, and change their makefiles whenever the
>> version number changes.
>>
>
> No, it is the other way around. The problem *now* is that you need to
> know what to link against. The avutil.lib name does not change, but the
> name of the DLL to link against does, regardless of how avutil is named.
> (ie. when linking against a shared ffmpeg - static linking is no issue
> of course),
>
> The executable does not link against avutil.dll, but to a specific
> version, like avutil-52.dll.
>
> This means that distribution of the executable becomes a pain, as you
> really cannot tell which DLL to distribute easily from a makefile. You
> have to actually analyze the resulting .exe and make sure the DLL is in
> the path (a royal pain).
Linking the application against a versioned dll makes it possible to
have several versions of the dll installed, which might be required if
apps require different versions. Linking against a non-versioned dll
makes this impossible, and this situation is known as "dll hell".
> If you want to have users not worry about versioning at all on windows
> (a bad idea if you ask me, but I'll go along with it), then both the
Oh, you *want* to worry? Why didn't you say so sooner? I'm sure we
can think of ways to make your life really painful.
> .lib file and the .dll should not be versioned. Or a symlink (a copy on
> windows really) should be made on install.
>
> Having one versioned but not the other is really what makes it a royal pain.
>
> Personally, I strongly disagree about not versioning stuff, as it makes
> harder to know why something is broken. And if you are using a
> mingw/msys only system, it goes against the grain of Unix, which is a
> no-no in my book.
>
> Also, using ffmpeg normally, you really do not have to worry about
> versioning as the Makefile takes care of it.
Yes, the FFmpeg makefiles always link against the libraries that were
just built. How would changing the names make any user-visible
difference here?
--
M?ns Rullg?rd
mans at mansr.com
More information about the ffmpeg-devel
mailing list