ffmpeg mingw compilation 8192 char limits windows 10

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

ffmpeg mingw compilation 8192 char limits windows 10

Erwan Douaille
Hi,

I´m trying to compile ffmpeg shared with mingw64 on Windows 10.
Here is the configure command:

    ./configure --arch=x86_64 --enable-shared --disable-static
--prefix=/e/Downloads/ffmpeg-dyn/

Everything looks ok.
Then I make:

    mingw32-make.exe -j16

But I encounter this error:

    LD      libswresample/swresample-3.dll
    LD      libswscale/swscale-5.dll
    dlltool -m i386:x86-64 -d libswresample/swresample-3.def -l
libswresample/swresample.lib -D swresample-3.dll
    dlltool -m i386:x86-64 -d libswscale/swscale-5.def -l
libswscale/swscale.lib -D swscale-5.dll
    STRIP   libavcodec/x86/vp9itxfm.o
    GEN     libavcodec/libavcodec.ver
    EXTERN_PREFIX="" AR="ar" NM="nm -g" ./compat/windows/makedef
libavcodec/libavcodec.ver libavcodec/012v.o libavcodec/4xm.o
libavcodec/8bps.o libavcodec/8svx.o libavcodec/a64multienc.o
    ... // SKIP all .o files for stackoverflow
    libavcodec/y41pdec.o libavcodec/y41penc.o libavcodec/ylc.o
libavcodec/yop.o libavcodec/yuv4dec.o libavcodec/yuv4enc.o
libavcodec/zerocodec.o libavcodec/zmbv.o libavcodec/zmbvenc.o >
libavcodec/avcodec-58.def
    Object does not exist: lib
    mingw32-make: *** [ffbuild/library.mak:102: libavcodec/avcodec-58.dll]
Error 1

As you can see Object does not exist: lib does not mean anything. After
some investigations it looks like this is due to cmd.exe 8129 character
limitation for parameters. I tried to set a different ComSpec value,
without success. I also tried to do some changes in library.mak Using a
file containing *.o files but I encounter many errors.

It looks like this is a known issue but nothing I tried works :
https://trac.ffmpeg.org/ticket/6620

Any tips to fix it ?

Best regards,

Douaille Erwan <[hidden email]>
_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: ffmpeg mingw compilation 8192 char limits windows 10

Carl Eugen Hoyos-2
2018-12-19 14:39 GMT+01:00, Erwan Douaille <[hidden email]>:

> I´m trying to compile ffmpeg shared with mingw64 on Windows 10.
> Here is the configure command:
>
>     ./configure --arch=x86_64 --enable-shared --disable-static
> --prefix=/e/Downloads/ffmpeg-dyn/

Unrelated: "--arch=x86_64" does not do what you expect it to do,
please remove it.

> Everything looks ok.
> Then I make:
>
>     mingw32-make.exe -j16
>
> But I encounter this error:
>
>     LD      libswresample/swresample-3.dll
>     LD      libswscale/swscale-5.dll
>     dlltool -m i386:x86-64 -d libswresample/swresample-3.def -l
> libswresample/swresample.lib -D swresample-3.dll
>     dlltool -m i386:x86-64 -d libswscale/swscale-5.def -l
> libswscale/swscale.lib -D swscale-5.dll
>     STRIP   libavcodec/x86/vp9itxfm.o
>     GEN     libavcodec/libavcodec.ver
>     EXTERN_PREFIX="" AR="ar" NM="nm -g" ./compat/windows/makedef
> libavcodec/libavcodec.ver libavcodec/012v.o libavcodec/4xm.o
> libavcodec/8bps.o libavcodec/8svx.o libavcodec/a64multienc.o
>     ... // SKIP all .o files for stackoverflow
>     libavcodec/y41pdec.o libavcodec/y41penc.o libavcodec/ylc.o
> libavcodec/yop.o libavcodec/yuv4dec.o libavcodec/yuv4enc.o
> libavcodec/zerocodec.o libavcodec/zmbv.o libavcodec/zmbvenc.o >
> libavcodec/avcodec-58.def
>     Object does not exist: lib

Try:
$ make V=1 libavcodec/libavcodec-58.dll

Copy the first part of what is shown (something like "dlltool...")
but remove everything beginning with "libavcodec/012v.o" and
use "libavcodec/*.o" instead.

Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: ffmpeg mingw compilation 8192 char limits windows 10

Erwan Douaille
Le mer. 19 déc. 2018 à 15:43, Carl Eugen Hoyos <[hidden email]> a
écrit :

> 2018-12-19 14:39 GMT+01:00, Erwan Douaille <[hidden email]>:
>
> > I´m trying to compile ffmpeg shared with mingw64 on Windows 10.
> > Here is the configure command:
> >
> >     ./configure --arch=x86_64 --enable-shared --disable-static
> > --prefix=/e/Downloads/ffmpeg-dyn/
>
> Unrelated: "--arch=x86_64" does not do what you expect it to do,
> please remove it.
>
> > Everything looks ok.
> > Then I make:
> >
> >     mingw32-make.exe -j16
> >
> > But I encounter this error:
> >
> >     LD      libswresample/swresample-3.dll
> >     LD      libswscale/swscale-5.dll
> >     dlltool -m i386:x86-64 -d libswresample/swresample-3.def -l
> > libswresample/swresample.lib -D swresample-3.dll
> >     dlltool -m i386:x86-64 -d libswscale/swscale-5.def -l
> > libswscale/swscale.lib -D swscale-5.dll
> >     STRIP   libavcodec/x86/vp9itxfm.o
> >     GEN     libavcodec/libavcodec.ver
> >     EXTERN_PREFIX="" AR="ar" NM="nm -g" ./compat/windows/makedef
> > libavcodec/libavcodec.ver libavcodec/012v.o libavcodec/4xm.o
> > libavcodec/8bps.o libavcodec/8svx.o libavcodec/a64multienc.o
> >     ... // SKIP all .o files for stackoverflow
> >     libavcodec/y41pdec.o libavcodec/y41penc.o libavcodec/ylc.o
> > libavcodec/yop.o libavcodec/yuv4dec.o libavcodec/yuv4enc.o
> > libavcodec/zerocodec.o libavcodec/zmbv.o libavcodec/zmbvenc.o >
> > libavcodec/avcodec-58.def
> >     Object does not exist: lib
>
> Try:
> $ make V=1 libavcodec/libavcodec-58.dll
>
> Copy the first part of what is shown (something like "dlltool...")
> but remove everything beginning with "libavcodec/012v.o" and
> use "libavcodec/*.o" instead.
>
> Carl Eugen
> _______________________________________________
> ffmpeg-user mailing list
> [hidden email]
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [hidden email] with subject "unsubscribe".


What does --arch=x86_64 do ?

$ mingw32-make.exe V=1 libavcodec/libavcodec-58.dll
mkdir -p libavutil/
mkdir -p libswscale/
mkdir -p libswresample/
mkdir -p libavcodec/
mkdir -p libavformat/
mkdir -p libavfilter/
mkdir -p libavdevice/
mingw32-make: *** No rule to make target 'libavcodec/libavcodec-58.dll'.
Stop.

Doesn´t work. Then I tried to change :
EXTERN_PREFIX="$(EXTERN_PREFIX)" AR="$(AR_CMD)" NM="$(NM_CMD)"
$(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(OBJS) >
$$(@:$(SLIBSUF)=.def)`
into
EXTERN_PREFIX="$(EXTERN_PREFIX)" AR="$(AR_CMD)" NM="$(NM_CMD)"
$(SRC_PATH)/compat/windows/makedef $(SUBDIR)lib$(NAME).ver $(SUBDIR)/*.o >
$$(@:$(SLIBSUF)=.def)

SLIB_CREATE_DEF_CMD into common.mak, but i directly changed it into
library.mak by replacing $(SLIB_CREATE_DEF_CMD) by this line.

Result :
LD      libavcodec/avcodec-58.dll
C:/msys64-gcc73/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
Cannot export av_codec_ffversion: symbol not defined
C:/msys64-gcc73/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
Cannot export av_codec_get_chroma_intra_matrix: symbol not defined
C:/msys64-gcc73/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/7.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
Cannot export av_codec_get_codec_descriptor: symbol not defined
...
And  a lot of undefined references.

Thanks for helping.
--
Best regards,

Douaille Erwan <[hidden email]>
_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: ffmpeg mingw compilation 8192 char limits windows 10

Carl Eugen Hoyos-2


> Am 24.12.2018 um 08:29 schrieb Erwan Douaille <[hidden email]>:
>
> Le mer. 19 déc. 2018 à 15:43, Carl Eugen Hoyos <[hidden email]> a
> écrit :
>
>> 2018-12-19 14:39 GMT+01:00, Erwan Douaille <[hidden email]>:
>>
>>> I´m trying to compile ffmpeg shared with mingw64 on Windows 10.
>>> Here is the configure command:
>>>
>>>    ./configure --arch=x86_64 --enable-shared --disable-static
>>> --prefix=/e/Downloads/ffmpeg-dyn/
>>
>> Unrelated: "--arch=x86_64" does not do what you expect it to do,
>> please remove it.
>>
>>> Everything looks ok.
>>> Then I make:
>>>
>>>    mingw32-make.exe -j16
>>>
>>> But I encounter this error:
>>>
>>>    LD      libswresample/swresample-3.dll
>>>    LD      libswscale/swscale-5.dll
>>>    dlltool -m i386:x86-64 -d libswresample/swresample-3.def -l
>>> libswresample/swresample.lib -D swresample-3.dll
>>>    dlltool -m i386:x86-64 -d libswscale/swscale-5.def -l
>>> libswscale/swscale.lib -D swscale-5.dll
>>>    STRIP   libavcodec/x86/vp9itxfm.o
>>>    GEN     libavcodec/libavcodec.ver
>>>    EXTERN_PREFIX="" AR="ar" NM="nm -g" ./compat/windows/makedef
>>> libavcodec/libavcodec.ver libavcodec/012v.o libavcodec/4xm.o
>>> libavcodec/8bps.o libavcodec/8svx.o libavcodec/a64multienc.o
>>>    ... // SKIP all .o files for stackoverflow
>>>    libavcodec/y41pdec.o libavcodec/y41penc.o libavcodec/ylc.o
>>> libavcodec/yop.o libavcodec/yuv4dec.o libavcodec/yuv4enc.o
>>> libavcodec/zerocodec.o libavcodec/zmbv.o libavcodec/zmbvenc.o >
>>> libavcodec/avcodec-58.def
>>>    Object does not exist: lib
>>
>> Try:
>> $ make V=1 libavcodec/libavcodec-58.dll
>>
>> Copy the first part of what is shown (something like "dlltool...")
>> but remove everything beginning with "libavcodec/012v.o" and
>> use "libavcodec/*.o" instead.

> What does --arch=x86_64 do ?

It is needed for cross-compilation but you are not cross-compiling.

> $ mingw32-make.exe V=1 libavcodec/libavcodec-58.dll

I guess this should be:
libavcodec/avcodec-58.dll

Merry Christmas, Carl Eugen
_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".
Reply | Threaded
Open this post in threaded view
|

Re: ffmpeg mingw compilation 8192 char limits windows 10

Erwan Douaille
Le lun. 24 déc. 2018 à 12:53, Carl Eugen Hoyos <[hidden email]> a
écrit :

>
>
> > Am 24.12.2018 um 08:29 schrieb Erwan Douaille <[hidden email]>:
> >
> > Le mer. 19 déc. 2018 à 15:43, Carl Eugen Hoyos <[hidden email]> a
> > écrit :
> >
> >> 2018-12-19 14:39 GMT+01:00, Erwan Douaille <[hidden email]>:
> >>
> >>> I´m trying to compile ffmpeg shared with mingw64 on Windows 10.
> >>> Here is the configure command:
> >>>
> >>>    ./configure --arch=x86_64 --enable-shared --disable-static
> >>> --prefix=/e/Downloads/ffmpeg-dyn/
> >>
> >> Unrelated: "--arch=x86_64" does not do what you expect it to do,
> >> please remove it.
> >>
> >>> Everything looks ok.
> >>> Then I make:
> >>>
> >>>    mingw32-make.exe -j16
> >>>
> >>> But I encounter this error:
> >>>
> >>>    LD      libswresample/swresample-3.dll
> >>>    LD      libswscale/swscale-5.dll
> >>>    dlltool -m i386:x86-64 -d libswresample/swresample-3.def -l
> >>> libswresample/swresample.lib -D swresample-3.dll
> >>>    dlltool -m i386:x86-64 -d libswscale/swscale-5.def -l
> >>> libswscale/swscale.lib -D swscale-5.dll
> >>>    STRIP   libavcodec/x86/vp9itxfm.o
> >>>    GEN     libavcodec/libavcodec.ver
> >>>    EXTERN_PREFIX="" AR="ar" NM="nm -g" ./compat/windows/makedef
> >>> libavcodec/libavcodec.ver libavcodec/012v.o libavcodec/4xm.o
> >>> libavcodec/8bps.o libavcodec/8svx.o libavcodec/a64multienc.o
> >>>    ... // SKIP all .o files for stackoverflow
> >>>    libavcodec/y41pdec.o libavcodec/y41penc.o libavcodec/ylc.o
> >>> libavcodec/yop.o libavcodec/yuv4dec.o libavcodec/yuv4enc.o
> >>> libavcodec/zerocodec.o libavcodec/zmbv.o libavcodec/zmbvenc.o >
> >>> libavcodec/avcodec-58.def
> >>>    Object does not exist: lib
> >>
> >> Try:
> >> $ make V=1 libavcodec/libavcodec-58.dll
> >>
> >> Copy the first part of what is shown (something like "dlltool...")
> >> but remove everything beginning with "libavcodec/012v.o" and
> >> use "libavcodec/*.o" instead.
>
> > What does --arch=x86_64 do ?
>
> It is needed for cross-compilation but you are not cross-compiling.
>
> > $ mingw32-make.exe V=1 libavcodec/libavcodec-58.dll
>
> I guess this should be:
> libavcodec/avcodec-58.dll
>
> Merry Christmas, Carl Eugen
> _______________________________________________
> ffmpeg-user mailing list
> [hidden email]
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [hidden email] with subject "unsubscribe".


Oops my bad. Thanks !
It works like a charm.

Merry Christmas

--
Best regards,

Douaille Erwan <[hidden email]>
_______________________________________________
ffmpeg-user mailing list
[hidden email]
http://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[hidden email] with subject "unsubscribe".