[Libav-user] Making a static lib with -MD option

Alex Cohn alexcohn at netvision.net.il
Thu May 23 01:27:55 CEST 2013


On Wed, May 22, 2013 at 1:07 PM, Steffen <Steffen.Roeber at hella.com> wrote:
> Unfortunately not.
> Example:
> 1. dll (cio.dll) links statically to av.libs
> 2. dll (crecord.dll) links to both statically to av.libs and dynamically to cio.dll
>
> That gives me:
> cio.lib(cio.dll) : error LNK2005: _avpriv_snprintf already defined in libavutil.lib(snprintf.o)
> cio.lib(cio.dll) : error LNK2005: _avpriv_vsnprintf already defined in libavutil.lib(snprintf.o)
> cio.lib(cio.dll) : error LNK2005: _avpriv_strtod already defined in libavutil.lib(strtod.o)

I don't think the warnings about "locally defined symbol
_avpriv_snprintf imported" have anything to do with your problem. I am
afraid your procedure is wrong. You have snprintf.o included both in
cio.dll and in crecord.dll. I would suggest that you link crecord.dll
only to cio.dll, without libavutil.lib. You will probably get quite a
few unresolved references this way.

The next step will be to use [/INCLUDE
directive](http://msdn.microsoft.com/en-us/library/2s3hwbhs(v=vs.110).aspx)
for all these unresolved references, and rebuild the cio.dll. Now,
cio.dll will contain all references necessary to resolve the needs of
crecord,dll,

BR,
Alex Cohn


More information about the Libav-user mailing list