-
Bug
-
Resolution: Invalid
-
Not Evaluated
-
None
-
5.2.0
-
None
-
Visual Studio 2013 Update
Downloaded Qt 5.2.0 source, started a VS2013 x86 prompt, added <qtsrcdir>\gnuwin32\bin and c:\python33 to path, then configured like this:
configure -opensource -debug-and-release -c++11 -shared -platform win32-msvc2013 -largefile -no-dbus -mp -directwrite -plugin-sql-sqlite -plugin-sql-odbc
QTBUG-34709 shows but it's easy to fix. Next, I hit this:
-8<--
cd qml\ && ( if not exist Makefile C:\personal\qt\qt-5.2.0\qtbase\bin\qmake C:\personal\qt\qt-5.2.0\qtdeclarative\src\qml\qml.pro -o Makefile ) && "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe" -f Makefile
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe" -f Makefile.Debug all
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.
echo 2 /* CREATEPROCESS_MANIFEST_RESOURCE_ID / 24 / RT_MANIFEST */ "C:\\personal\\qt\\qt-5.2.0\\qtbase\\lib\\Qt5Qmld.dll.embed.manifest">C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll_manifest.rc
if not exist C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll if exist C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll.embed.manifest del C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll.embed.manifest
if exist C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll.embed.manifest copy /Y C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll.embed.manifest C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll_manifest.bak
link /NOLOGO /DYNAMICBASE /NXCOMPAT /BASE:0x66000000 /DEBUG /DLL /VERSION:5.20 /MANIFEST /MANIFESTFILE:C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll.embed.manifest /OUT:C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll @C:\Users\pgquiles\AppData\Local\Temp\nmE554.tmp
Creating library C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.lib and object C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.exp
YarrInterpreter.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::newlineCreate(void)" (?newlineCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::newlineCharacterClass(void)" (?newlineCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
YarrJIT.obj : error LNK2001: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::newlineCreate(void)" (?newlineCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ)
YarrPattern.obj : error LNK2001: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::newlineCreate(void)" (?newlineCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ)
YarrInterpreter.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::wordcharCreate(void)" (?wordcharCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::wordcharCharacterClass(void)" (?wordcharCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
YarrJIT.obj : error LNK2001: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::wordcharCreate(void)" (?wordcharCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ)
YarrPattern.obj : error LNK2001: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::wordcharCreate(void)" (?wordcharCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ)
YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::digitsCreate(void)" (?digitsCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::digitsCharacterClass(void)" (?digitsCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::spacesCreate(void)" (?spacesCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::spacesCharacterClass(void)" (?spacesCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::nondigitsCreate(void)" (?nondigitsCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::nondigitsCharacterClass(void)" (?nondigitsCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::nonspacesCreate(void)" (?nonspacesCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::nonspacesCharacterClass(void)" (?nonspacesCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
YarrPattern.obj : error LNK2019: unresolved external symbol "struct JSC::Yarr::CharacterClass * __cdecl JSC::Yarr::nonwordcharCreate(void)" (?nonwordcharCreate@Yarr@JSC@@YAPAUCharacterClass@12@XZ) referenced in function "public: struct JSC::Yarr::CharacterClass * __thiscall JSC::Yarr::YarrPattern::nonwordcharCharacterClass(void)" (?nonwordcharCharacterClass@YarrPattern@Yarr@JSC@@QAEPAUCharacterClass@23@XZ)
C:\personal\qt\qt-5.2.0\qtbase\lib\Qt5Qmld.dll : fatal error LNK1120: 7 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe"' : 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.
-8<--
From what I can see, there are two versions of YARR being provided with Qt: one in qtwebkit\Source\JavaScriptCore\yarr\YarrPattern.
{h,cpp}, the other in qtscript\src\3rdparty\javascriptcore\JavaScriptCore\yarr\RegexPattern.{h,cpp}The compilation problem happens with the one in QtWebKit, which is a newer version of JSC.
This declaration is in both YarrPattern.h and RegexPattern.h:
CharacterClass* newlineCreate();
But only qtscript\src\3rdparty\javascriptcore\JavaScriptCore\yarr\RegexPattern.cpp provides an implementation:
CharacterClass* newlineCreate()
{
CharacterClass* characterClass = new CharacterClass();
characterClass->m_matches.append('\n');
characterClass->m_matches.append('\r');
characterClass->m_matchesUnicode.append(0x2028);
characterClass->m_matchesUnicode.append(0x2029);
return characterClass;
}
I can't find an implementation for newlineCreate() in qtwebkit\Source\JavaScriptCore\yarr\YarrPattern.cpp or any other file compiled in QtWebKit.
I don't really understand why this compiles with other compilers.