2009-08-12 29 views
4

我試圖讓我的Visual Studio中的Qt插件來工作,所以重新編譯Qt庫,我跑以下命令從VS命令提示符:編譯Qt庫以使用Visual Studio 2008運行,爲什麼nmake失敗?

c:\*Qtfolder*>configure -platform -win32-msvc2008 

這個我NMAKE跑後,開始了編譯過程。由於鏈接錯誤,它在中止前約45分鐘。我總共得到了八個「無法解析的外部符號」錯誤,全部來自QNetworkReplyHandler.obj和FrameLoaderClientQt.obj。這些都不是我需要的庫,但編譯會因錯誤而中止。當它終止時,剩下的庫看起來差不多完成了,實際上我甚至可以在Visual Studio中加載和編譯我的Qt項目,因爲它們只是運行錯誤,因爲很可能並非所有的庫都被編譯。有沒有人遇到這個問題,或者知道爲什麼nmake失敗了?

看來,如果我可以告訴編譯器繼續前進,儘管存在錯誤或省略了可能工作的違規庫。 Qt的配置有很多選項,但我找不到任何我需要的東西,不幸的是我找不到任何Qt的配置選項的在線參考,谷歌搜索的所有內容都是針對「Qtopia」的原因。

這是最後一個錯誤。有七個是基本上完全相同的錯誤,只是不同的符號

FrameLoaderClientQt.obj : error LNK2019: unresolved external symbol "protected: 
void __thiscall QWebPage::downloadRequested(class QNetworkRequest const &)" (?do 
[email protected]@@[email protected]@@Z) referenced in function "pu 
blic: virtual void __thiscall WebCore::FrameLoaderClientQt::startDownload(struct 
WebCore::ResourceRequest const &)" ([email protected]@[email protected] 
@[email protected]@@Z) 
..\..\..\..\lib\QtWebKitd4.dll : fatal error LNK1120: 8 unresolved externals 
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN 
\link.EXE"' : return code '0x460' 
Stop. 
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN 
\nmake.exe"' : return code '0x2' 
Stop. 
NMAKE : fatal error U1077: 'cd' : return code '0x2' 
Stop. 
+1

我們能看到這些解析的外部符號錯誤? – richardwb

+0

@richard,我將其添加到 –

回答

4

顯然你可以通過刪除src/3rdparty/webkit/WebCore/tmp/moc/{debug,release}_shared中的mocinclude.tmp這兩個實例來解決這個特定的錯誤。 (Source)。另外,當你運行configure的時候,你可以傳遞一個'help'參數來得到它理解的參數列表(即configure help)。

+0

謝謝,我會試一試。我在我的機器上看到了配置幫助,只是我找不到鏈接到的在線參考。我最終嘗試使用/ K選項nmake在錯誤後繼續,但我得到了同樣的問題。 –

+0

該解決方案效果最佳。如果你做了-no-webkit選項,它會成功編譯,但是當你試圖將你的Qt項目導入到VS時,它會失敗並出現「不兼容的Qt庫」(或類似的東西)錯誤。 –

2

不知道這是否會幫助,但這裏是我曾經成功打造的Qt 4.5爲Visual Studio Express的2008年對Vista的配置選項:

C:\ Qt的\ 2009.01 \配置 -no-SQL源碼-no-qt3support -no的OpenGL -platform Win32的msvc2008 -no-的libtiff -no-DBUS -no聲子-no - 聲子-backend -no-webkit

我明白了s Qt 4.5 with Visual Studio 2008 (VC++ Express) HowTo

請確保遵循所有的說明,以獲得在VS中構建示例。

+0

這是我使用的主要參考之一,我嘗試使用configure.exe的命令行參數進行播放,但它們都給出了相同的結果,nmake失敗並出現相同的鏈接錯誤。 –

1

在閱讀richardwb的回答後,我瀏覽了Qt論壇,發現another proposed solution這是使用-no-webkit選項運行configure以跳過違規庫。最終的configure命令應該是這樣的

configure -no-webkit -platform win32-msvc2008 

我要試試這個和richardwb的解決方案和更新,當我做

相關問題