Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-102642

QtMultimedia ffmpeg plugin fails to build on ArchLinux

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: P2: Important
    • Resolution: Cannot Reproduce
    • Affects Version/s: 6.4.0
    • Fix Version/s: None
    • Component/s: Multimedia
    • Labels:
      None
    • Platform/s:
      Linux/Wayland

      Description

      The library list being passed to the linker appears to be broken:

       

      /../../../plugins/multimedia/libffmegmediaplugin.so CMakeFiles/QFFmpegMediaPlugin.dir/QFFmpegMediaPlugin_autogen/mocs_compilation.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegaudiodecoder.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegaudioinput.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegclock.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegdecoder.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpeghwaccel.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegencoderoptions.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegmediametadata.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegmediaplayer.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegvideosink.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegmediaformatinfo.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegmediaintegration.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegvideobuffer.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegimagecapture.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegmediacapturesession.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegmediarecorder.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegencoder.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegthread.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegresampler.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpegvideoframeencoder.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qffmpeghwaccel_vaapi.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/__/pulseaudio/qpulseaudiodevice.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/__/pulseaudio/qaudioengine_pulse.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/__/pulseaudio/qpulseaudiosource.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/__/pulseaudio/qpulseaudiosink.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/__/pulseaudio/qpulsehelpers.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/__/pulseaudio/qpulseaudiomediadevices.cpp.o CMakeFiles/QFFmpegMediaPlugin.dir/qv4l2camera.cpp.o  -Wl,-rpath,/home/rafael/dev/qt/qtmultimedia/build_host/lib:/home/rafael/dev/qt/qtbase/build_host/install/lib: /usr/lib/libEGL.so /usr/lib/libxkbcommon.so ../../../../lib/libQt6Multimedia.so.6.4.0 /home/rafael/dev/qt/qtbase/build_host/install/lib/libQt6Gui.so.6.4.0 /usr/lib/libGLX.so /usr/lib/libOpenGL.so /home/rafael/dev/qt/qtbase/build_host/install/lib/libQt6Network.so.6.4.0 /home/rafael/dev/qt/qtbase/build_host/install/lib/libQt6Core.so.6.4.0 -L/usr/lib -lavformat -lxml2 -lbz2 -lmodplug -lbluray -lgmp -lgnutls -lsrt -lssh /usr/lib/libavformat.so -lavcodec -lvpx -lwebpmux -lwebp -llzma -ldav1d -lopencore-amrwb -lrsvg-2 -lgio-2 -lgdk_pixbuf-2 -lgobject-2 -lglib-2 -lcairo -laom -lgsm -lmp3lame -lopencore-amrnb -lopenjp2 -lopus -lrav1e -lspeex -lpthread -ltheoraenc -ltheoradec -logg -lvorbis -lvorbisenc -lwebp -llzma -ldav1d -lopencore-amrwb -lrsvg-2 -lgio-2 -lgdk_pixbuf-2 -lgobject-2 -lglib-2 -lcairo -laom -lgsm -lmp3lame -lopencore-amrnb -lopenjp2 -lopus -lrav1e -lspeex -lpthread -ltheoraenc -ltheoradec -logg -lvorbis -lvorbisenc -lz -lx264 -lx265 -lxvidcore /usr/lib/libavcodec.so -lswresample -lsoxr /usr/lib/libswresample.so -lswscale /usr/lib/libswscale.so -lavutil -lva-drm -lva-x11 -lva -lvdpau -lm -ldrm -lmfx -lstdc /usr/lib/libavutil.so /usr/lib/libva-drm.so /usr/lib/libva.so /usr/lib/libpulse.so -Wl,-rpath-link,/home/rafael/dev/qt/qtbase/build_host/install/lib 
      /usr/bin/ld: cannot find -lgio-2: No such file or directory
      /usr/bin/ld: cannot find -lgdk_pixbuf-2: No such file or directory
      /usr/bin/ld: cannot find -lgobject-2: No such file or directory
      /usr/bin/ld: cannot find -lglib-2: No such file or directory
      /usr/bin/ld: cannot find -lgio-2: No such file or directory
      /usr/bin/ld: cannot find -lgdk_pixbuf-2: No such file or directory
      /usr/bin/ld: cannot find -lgobject-2: No such file or directory
      /usr/bin/ld: cannot find -lglib-2: No such file or directory
      /usr/bin/ld: cannot find -lstdc: No such file or directory
      collect2: error: ld returned 1 exit status
      
      

      In my system, there's no libgio-2.so, but rather libgio-2.0.so, for instance.

      I've traced the the regression to commit 3b9c6202a188645123f36479ee39c0c5e5e5f950

      https://codereview.qt-project.org/c/qt/qtmultimedia/+/402715

       

      I'm guessing __ffmpeg_internal_set_dependencies is leaning on assumptions that do not hold true on certain platforms.

      Reverting the commit did the trick for me, locally.

        Attachments

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              Assignee:
              piotr Piotr Srebrny
              Reporter:
              rafaelroquetto Rafael Roquetto
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Gerrit Reviews

                  There are no open Gerrit changes