[FFmpeg-user] configure error with enabling libmodplug

Clément Bœsch u at pkh.me
Thu Sep 11 09:07:59 CEST 2014


On Thu, Sep 11, 2014 at 12:23:35PM +0900, Kimio Miyamura wrote:
> 
> > 2014/09/01 4:05PM Clément Bœsch <u at pkh.me> wrote: 
> > 
> > On Mon, Sep 01, 2014 at 03:39:08PM +0900, Kimio Miyamura wrote:
> >> 
> >>> On 2014/09/01, at 2:11PM, Clément Bœsch <u at pkh.me> wrote:
> >>> 
> >>>> On Mon, Sep 01, 2014 at 10:02:58AM +0900, Kimio Miyamura wrote:
> >>>> 
> >>>> I searched web and found that modification of ffmpeg configure script is required: 
> >> 
> >>>> -enabled libmodplug        && require libmodplug libmodplug/modplug.h ModPlug_Load -lmodplug
> >>>> +enabled libmodplug        && require libmodplug libmodplug/modplug.h ModPlug_Load -lmodplug -lstdc++
> >>>> 
> >>>> or
> >>>> 
> >>>> -enabled libmodplug        && require libmodplug libmodplug/modplug.h ModPlug_Load -lmodplug
> >>>> +enabled libmodplug        && require libmodplug libmodplug/modplug.h ModPlug_Load -lmodplug -lc++
> >> 
> >>>> I think either of them should be added to ffmpeg compile script.  How do you think?
> >> 
> >>> Does -lstdc++ or -lc++ appears in pkg-config --libs libmodplug?
> >> 
> >> $ pkg-config --libs libmodplug
> >> -L/Volumes/ffmpeg_compile/lib -lmodplug
> >> 
> >> So either -lstdc++ or -lc++ don't appear in the command output.  
> >> 
> >> I checked libmodplug.pc.  
> >> 
> >> $ cat /Volumes/ffmpeg_compile/lib/pkgconfig/libmodplug.pc 
> >> prefix=/Volumes/ffmpeg_compile
> >> exec_prefix=${prefix}
> >> libdir=${exec_prefix}/lib
> >> includedir=${prefix}/include
> >> 
> >> Name: libmodplug
> >> Description: The ModPlug mod file playing library.
> >> Version: 0.8.8.5
> >> Requires: 
> >> Libs: -L${libdir} -lmodplug
> >> Libs.private: -lstdc++ -lm
> >> Cflags: -I${includedir}
> >> 
> >> -lstdc++ appears in Libs.private: line.  But even though configure with "./configure --pkg-config-flags=--static --enable-libmodplug", the result is same error.  
> >> 
> > 
> > Right, that's because libmodplug wasn't detected through pkg-config, which
> > I just fixed in git/master. Can you git pull and retry that latest command
> > with --pkg-config-flags=--static?
> 
> A information for Windows (MinGW?) user.  
> 
> With above ffmpeg change, Windows (MinGW?) user encounters libmodplug not found error when configuring ffmpeg with libmodplug-0.8.8.5.  
> This is because of mod plug.h's 		MODPLUG_EXPORT macro.  The macro is defined as __declspec(dllimport) would be added, without defining MODPLUG_STATIC.  

Can you explain how this is different from before the pkg-config patch?

> Then, called as `_imp__ModPlug_Load' from ffmpeg configure, and then result in libmodplug not found error.  (I'm not Windows user.  I'm writing the error mechanism based on one of my friend's comment who using Windows)
> 

> The countermeasure is either of bellow 3.
> 1.Define MODPLUG_STATIC in modplug.h.

What is the consequence of this when it's not static?

> 2.Add "-DMODPLUG_STATIC" to Cflags: -I${includedir} line in libmodplug.pc.

Sounds like you have to add this to Cflags.private or something so it's
raised with --static. You need to see this with modplug itself

> 3.Configure ffmpeg with adding "--extra-cflags=-DMODPLUG_STATIC" option.
> 

We indeed currently do #define MODPLUG_STATIC in the
libavformat/libmodplug.c itself, so it should probably be in the configure
test as well. Unfortunately, I'm not sure how this actually affects the
linking when only a shared version of the library is available. Also, I
don't understand how this previously worked, because the configure test
never had it.

[...]

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-user/attachments/20140911/d99fbd6b/attachment.asc>


More information about the ffmpeg-user mailing list