Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.6.1
-
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.