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

Compiling 5.6.1-1 source on VC14 (on Windows) fails with link error for ffmpeg

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P1: Critical
    • 5.6.2, 5.7.1, 5.8.0 Alpha
    • 5.6.1
    • WebEngine
    • None

    Description

      I was trying to compile QT-5.6.1-1 for VC14, along with ICU 57, and I encountered a link error for ffmpeg.wavdec.obj.
      The console output is below:
      ------------------------------------------------------------------------
      link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /MACHINE:X64 /LIBPATH:"C:\Program Files (x86)\Windows Kits\8.1\Lib\win8\um\x64" /DELAYLOAD:dbghelp.dll /DELAYLOAD:dwmapi.dll /DELAYLOAD:shell32.dll /DELAYLOAD:uxtheme.dll /DELAYLOAD:cfgmgr32.dll /DELAYLOAD:powrprof.dll /DELAYLOAD:setupapi.dll /DELAYLOAD:mf.dll /DELAYLOAD:mfplat.dll /DELAYLOAD:mfreadwrite.dll /DELAYLOAD:BluetoothApis.dll /DELAYLOAD:Bthprops.cpl /DELAYLOAD:dinput8.dll /DELAYLOAD:user32.dll /DELAYLOAD:d3d9.dll /DELAYLOAD:d3d11.dll /DELAYLOAD:dxva2.dll /PDB:C:\qt_561\qt-everywhere-opensource-src-5.6.1\qtbase\lib\Qt5WebEngineCore.pdb /maxilksize:0x7ff00000 /dynamicbase /ignore:4199 /ignore:4221 /nxcompat /SUBSYSTEM:WINDOWS,5.02 /INCREMENTAL:NO /FIXED:NO /OPT:REF /OPT:ICF /NODEFAULTLIB:olepro32.lib /PROFILE wininet.lib dnsapi.lib version.lib msimg32.lib ws2_32.lib usp10.lib psapi.lib dbghelp.lib winmm.lib shlwapi.lib cfgmgr32.lib powrprof.lib setupapi.lib advapi32.lib kernel32.lib gdi32.lib winspool.lib comdlg32.lib shell32.lib ole32.lib oleaut32.lib user32.lib uuid.lib odbc32.lib odbccp32.lib delayimp.lib credui.lib netapi32.lib /DYNAMICBASE /NXCOMPAT /OPT:REF @C:/qt_561/qt-everywhere-opensource-src-5.6.1/qtwebengine/src/core/api/Release_x64\qtwebenginecoreapi.lib.objects /INCREMENTAL:NO /DLL /SUBSYSTEM:WINDOWS /VERSION:5.6 /MANIFEST:embed /OUT:..\..\lib\Qt5WebEngineCore.dll @C:\Users\davidd\AppData\Local\Temp\nm8831.tmp
      Creating library ..\..\lib\Qt5WebEngineCore.lib and object ..\..\lib\Qt5WebEngineCore.exp
      ffmpeg.lib(ffmpeg.wavdec.obj) : error LNK2001: unresolved external symbol ff_w64_guid_data
      ..\..\lib\Qt5WebEngineCore.dll : fatal error LNK1120: 1 unresolved externals
      NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.EXE"' : return code '0x460'
      Stop.
      NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64\nmake.exe"' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: '(' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: 'cd' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: 'cd' : return code '0x2'
      Stop.
      NMAKE : fatal error U1077: 'cd' : return code '0x2'
      Stop.
      ---------------------------------------------------------------------

      Our team found a fix however, and the culprit was the wavdec.c file, located in \qtwebengine\src\3rdparty\chromium\third_party\ffmpeg\libavformat\

      It turns out that you were missing an #if before a portion of code, and it seems that you meant to code something but made a simple mistake.
      Lines 554-556 now looks like this:

      #if CONFIG_W64_DEMUXER
      if (CONFIG_W64_DEMUXER && wav->w64)
      left = find_guid(s->pb, ff_w64_guid_data) - 24;
      else
      #endif

      And it then links without a problem.

      Attachments

        For Gerrit Dashboard: QTBUG-54455
        # Subject Branch Project Status CR V

        Activity

          People

            jbornema Joerg Bornemann
            dorond Doron David
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes