[Ffmpeg-devel] [patch] building on windows
Fri Jul 14 01:36:55 CEST 2006
M?ns Rullg?rd wrote:
>Diego Biurrun <diego at biurrun.de> writes:
>>On Thu, Jul 13, 2006 at 04:40:45PM 0200, Christoph Pfister wrote:
>>>The following rule in the makefile doesn't work properly because symlinks
>>>aren't available on windows.
>>>Because of that users have to manually rename e.g. avcodec.dll.<number>
>>>to avcodec.dll. The following patch fixes it.
>>>--- old/common.mak 2006-07-13 16:17:56.000000000 0200
>>> new/common.mak 2006-07-13 16:32:07.000000000 0200
>>>@@ -18,7 18,11 @@ $(LIB): $(STATIC_OBJS)
>>> $(RANLIB) $@
>>> $(SLIBNAME): $(SLIBNAME_WITH_MAJOR)
>>> ifeq ($(CONFIG_MINGW),yes)
>>> cp -sf $^ $@
>>> ln -sf $^ $@
>>Hmm, 'cp -sf' makes symbolic links as well, at least with GNU cp. So
>>does this work properly on Windows? The '-s' gets ignored or what?
>The real question we should be asking is if the foo.dll.xx are useful
>at all. Perhaps the right thing to do is drop the version number for
>dlls and give windows users the dll hell they deserve.
Yes. Dll hell. We just love it. And we're very used to it. The patch I
had proposed a few days ago removed the versioning in the filename, and
made things on windows work like a charm (the charm we're used to).
I was thinking that maybe using a patch that was suggested some while
back (which changed the version number to before the .dll extension, as
in libavutil.49.dll) is also a good solution. But, if we link with
-lavutil, the executable will expect to find avutil.dll, and not
avutil.49.dll (that's the problem at the moment, not finding correct
file). I don't know much about how to do this, and how to go about doing
it, but it would be good if the link argument pointed to the dll with
version number. Either by linking with -lavutil.49 (I don't even know if
this is possible, just a suggestion), or making the -lavutil argument
look for avutil.49.dll, instead of avutil.dll. Anyone knows how to do this?
More information about the ffmpeg-devel