On Thu, Sep 11, 2014 at 12:23:35PM +0900, Kimio Miyamura wrote: > > > 2014/09/01 4:05PM Clément Bœsch <[email protected]> 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 <[email protected]> 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.
pgpvzZ91t_3Fh.pgp
Description: PGP signature
_______________________________________________ ffmpeg-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-user
