[FFmpeg-devel] [PATCH 1/1] Enable building with WSL and MSVC

Pierre-Anthony Lemieux pal at sandflow.com
Mon Oct 3 18:20:43 EEST 2022


On Mon, Oct 3, 2022 at 1:11 AM Julio C. Rocha <dev at rocha.red> wrote:
>
> On Sun, Oct 2, 2022 at 5:19 PM Pierre-Anthony Lemieux <pal at sandflow.com>
> wrote:
>
> > On Sun, Oct 2, 2022 at 5:14 PM Timo Rothenpieler <timo at rothenpieler.org>
> > wrote:
> > >
> > > On 03.10.2022 01:47, Julio C. Rocha wrote:
> > > > ---
> > > >   configure | 7 ++++++-
> > > >   1 file changed, 6 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/configure b/configure
> > > > index 6712d045d9..f5f5eb29dd 100755
> > > > --- a/configure
> > > > +++ b/configure
> > > > @@ -4847,7 +4847,12 @@ probe_cc(){
> > > >           else
> > > >               _ident=$($_cc --version 2>/dev/null | head -n1 | tr -d
> > '\r')
> > > >           fi
> > > > -        _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< 2>&1
> > | awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if
> > (!match($$0, / /)) print "$@:", $$0 }'\'' > $(@:.o=.d)'
> > > > +        if [ "$(grep -i Microsoft /proc/version)" ]; then
> > >
> > > Not convinced that this is a good check.
> > > I can think of a few other situations where Microsoft might appear in
> > > there. Like, for example on one of their servers, Azure Cloud, Github
> > > Actions and so on.
> > >
> > > > +            # Windows Subsystem for Linux
> > > > +            _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $<
> > 2>&1 | awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if
> > (!match($$0, / /)) { cmd="/usr/bin/wslpath \x27" $$0 "\x27"; cmd |& getline
> > pth; print "$@:", pth } }'\'' > $(@:.o=.d)'
> > > > +        else
> > > > +            _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $<
> > 2>&1 | awk '\''/including/ { sub(/^.*file: */, ""); gsub(/\\/, "/"); if
> > (!match($$0, / /)) print "$@:", $$0 }'\'' > $(@:.o=.d)'
> > > > +        fi
> > > >           _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs'
> > > >           _cflags_speed="-O2"
> > > >           _cflags_size="-O1"
> > >
> > >
> > > What actual issue is this solving?
> > > I've been building in WSL for years, including MSVC builds, and never
> > > encountered any problems.
> >
> > FWIW. I am currently building on WSL:
> >
> > $ uname -a
> > Linux pal-xxxxx 5.10.102.1-microsoft-standard-WSL2 #1 SMP Wed Mar 2
> > 00:30:59 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
> >
> > $ lsb_release -a
> > No LSB modules are available.
> > Distributor ID: Ubuntu
> > Description:    Ubuntu 20.04.4 LTS
> > Release:        20.04
> > Codename:       focal
> >
>
> Noted, Pierre.
> Are you able to build using the Visual Studio compilers (MSVC) without any
> further hacking?

I had never tried it. Quick attempt results in:

$ ./configure --toolchain=msvc
cl.exe is unable to create an executable file.
If cl.exe is a cross-compiler, use the --enable-cross-compile option.

>
> Example workflow:
> cd /path/to/ffmpeg-clone
> ./configure --toolchain=msvc
> make
> make install
>
> Thanks.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list