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

QtMultimedia ffmpeg plugin fails to build on ArchLinux

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • P2: Important
    • None
    • 6.4.0
    • Multimedia
    • None
    • 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

              piotr Piotr Srebrny (Inactive)
              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