2015-11-10 103 views
3

我試圖用VS2015編譯QtWebkit,QT 5.6本身構建的很好。由於在5.6中刪除了webkit模塊,我恢復了版本號 SHA-1: 4116ec2474e608c9a752ace5e8eb92cbd4052ebc "* Removed QtWebkit and QtWebkit-Examples from qt5.git",所以我在運行「init-repository」時可以下載webkit模塊。但是同時建設,我得到一個鏈接錯誤不作任何意義:在Windows上構建與QT 5.6的QtWebKit

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的5.5.1 QT。 5.6中的某些內容已被更改,這可以防止它被開箱即用。很可能我的依賴錯誤。我怎麼會開始調試一個問題?我嘗試手動運行該命令,但它抱怨說無法找到.tmp文件。我假設構建腳本生成臨時文件然後刪除它們。 它試圖鏈接的文件我認爲與jsc.cpp有關,因爲它是在鏈接之前嘗試編譯的。

+0

不是一個真正的答案,但你不應該嘗試將你的代碼移植到新的QtWebEngine框架嗎?如果這是不可能的,我會將您的qt版本降級到支持QtWebkit的版本。在我看來,如果你會不斷遇到問題,如果你嘗試在不再支持它的Qt版本使用的模塊,即使你以某種方式設法得到它的工作 – Teimpz

+0

謝謝,WebEngine相當笨重,速度較慢,運行超出流程並且比WebKit佔用更多內存。該應用程序還依賴於一些WebKit功能,但這不是我的擔心。 此外,應用程序必須使用5.6,因爲它具有更好的高DPI支持。 –

+0

我在'qtwebkit/Source/JavaScriptCore/Makefile.jsc.Release:20'中發現了'\ OPT:REF'。 'LIBS = ... \ OPT:REF ...' 正確的選擇是'/ OPT:REF',不'\ OPT:REF' – tetsurom

回答

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:以某種方式treatened作爲輸入文件REF連接參數。您可以嘗試在構建配置中更改此參數並查看會發生什麼情況。祝你好運)