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

Michel Bardiaux mbardiaux
Wed May 9 10:50:56 CEST 2007


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.

>> 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.

Greetings,
-- 
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