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

QtMultimedia ffmpeg plugin fails to build on ArchLinux

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: P2: Important P2: Important
    • None
    • 6.4.0
    • Multimedia
    • None
    • Linux/Wayland

      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.

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

            piotr Piotr Srebrny (Inactive)
            rafaelroquetto Rafael Roquetto
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes