[FFmpeg-devel] Why 'You can only build one library type at once on MinGW'?

Michel Bardiaux mbardiaux
Wed May 9 11:03:20 CEST 2007


Zuxy Meng wrote:
> Hi,
> 
> 2007/5/9, Michel Bardiaux <mbardiaux at mediaxim.be>:
>> M?ns Rullg?rd wrote:
>>> "Zuxy Meng" <zuxy.meng at gmail.com> writes:
>>>
>>>> Hi,
>>>>
>>>> I don't understand. IIRC shared and nonshared objects are the same
>>>> under Windows,
>> No they're not.
> 
> Any details?
> 
>>>> while under Linux they're different (shared objects
>>>> needs to be compiled with -fPIC and access global data through %ebx?),
>> No, PIC is usually not required. PIC just guarantees the dso can be
>> relocated to any address. Without that its not possible to run when
>> there are conflicts of address ranges.
>>
>>>> so building the two simultaneously on Windows should be easier! I
>>>> removed that warning from configure and succeeded in building static
>>>> .a and dynamic .dll at the same time, and full test passed.
>>> Look a bit closer at those libraries.  IIRC the linker did some rather
>>> crazy things, but the details escape me.
>>>
>> When using the libraries in Visual-Studio, you need the dll *and* a
>> static lib that contains just the exported symbols.
>>
>> If the .a obtained is bigger than the dll, then its a 'normal' static
>> lib and the dll is useless. If it's small, it can be used to link to the
>> dll, but not on its own.
> 
> Sure. Under each directory I got a .a, a .dll.a (import lib) and a
> dll. I don't see there're any problems.

It would indeed be nifty to be able to build both shared and static 
together on mingw. But there is more to test: does make install work 
correctly? Does linking to the .a work correctly in VisualStudio? Ditto 
shared?

-- 
Michel Bardiaux
R&D Director
T +32 [0] 2 790 29 41
F +32 [0] 2 790 29 02
E mailto:mbardiaux at mediaxim.be

Mediaxim NV/SA
Vorstlaan 191 Boulevard du Souverain
Brussel 1160 Bruxelles
http://www.mediaxim.com/




More information about the ffmpeg-devel mailing list