Сборка QtWebKit с QT 5.6 в Windows

Я пытаюсь скомпилировать QtWebkit с VS2015, сам QT 5.6 строится нормально. Поскольку модуль webkit был удален в версии 5.6, я вернул версию SHA-1: 4116ec2474e608c9a752ace5e8eb92cbd4052ebc "* Removed QtWebkit and QtWebkit-Examples from qt5.git", чтобы я мог загрузить модуль webkit при запуске «init-repository». Однако при сборке я получаю ошибку компоновщика, которая не имеет никакого смысла:

link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:..\..\bin\jsc.exe @C:\Users\PAVLOD~1\AppData\Local\Temp\nmA33.tmp

LINK : fatal error LNK1181: cannot open input file '\OPT:REF.obj'

У меня не было проблем со сборкой QtWebkit с QT 5.5.1. Что-то изменилось в 5.6, что мешает сборке из коробки. Скорее всего, я ошибся в своих зависимостях. Как бы я вообще начал отлаживать проблему? Я попытался запустить эту команду вручную, но она пожаловалась, что не может найти файл .tmp. Я предполагаю, что сценарии сборки генерируют временные файлы для чего-то, а затем удаляют их. Файл, который он пытался связать, я думаю связан с jsc.cpp, потому что это то, что он пытался скомпилировать непосредственно перед связыванием.


person pullo_van    schedule 10.11.2015    source источник
comment
На самом деле это не ответ, но разве вы не должны попытаться перенести свой код в новую структуру QtWebEngine? Если это невозможно, я бы понизил вашу версию qt до версии, поддерживающей QtWebkit. Мне кажется, что если вы будете постоянно сталкиваться с проблемами, если попытаетесь использовать модуль в версии Qt, которая больше его не поддерживает, даже если вам каким-то образом удастся заставить его работать   -  person Teimpz    schedule 11.11.2015
comment
Спасибо, WebEngine значительно громоздче, медленнее, не работает и занимает больше памяти, чем WebKit. Приложение также использует некоторые функции WebKit, но меня это меньше беспокоит. Также приложение должно использовать 5.6 из-за лучшей поддержки высокого разрешения.   -  person pullo_van    schedule 12.11.2015
comment
Я нашел \OPT:REF в qtwebkit/Source/JavaScriptCore/Makefile.jsc.Release:20. LIBS = ... \OPT:REF ... Правильный вариант /OPT:REF, а не \OPT:REF   -  person tetsurom    schedule 29.03.2016
comment
К вашему сведению bugreports.qt.io/browse/QTBUG-50607   -  person tetsurom    schedule 29.03.2016


Ответы (1)


Я попытался воспроизвести и получил ту же ошибку, но в моем случае вызов компоновщика выглядит так

link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /OPT:REF /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST:embed /OUT:..\..\bin\jsc.exe @D:\Temp\_system\nmB77B.tmp
LINK : fatal error LNK1181: cannot open input file '\OPT:REF.obj'

Здесь у нас есть аргумент компоновщика /OPT:REF, который каким-то образом обрабатывается как входной файл. Вы можете попробовать изменить этот параметр в конфигурации сборки и посмотреть, что произойдет. Удачи)

person Sergey Ivanov    schedule 25.12.2015