2012-08-17 152 views
1

這個Qt應用程序被VS 2010編譯爲最終用戶,但正在執行的應用程序沒有找到Qt的dll。在該文件夾中,有QtGui4.dll和QtCore4.dll如何解決此問題?Qt應用程序找不到QtGui4.dll和QtCore4.dll

enter image description here

+3

那麼,實際上,它似乎找到了DLL,而不是它需要的DLL中的特定函數。你可以仔細檢查它是否實際加載了正確的DLL,並且沒有從另一個應用程序中拾取Qt DLL。只要把你的EXE放在Dependency Walker中,看看你的DLL有什麼路徑。 – Bart 2012-08-17 09:13:51

+0

@我覺得你是對的。可能是他把不同的Qt verion的dll。 – 2012-08-17 09:28:00

+2

僅供參考,可以在[此鏈接]找到Dependency Walker(http://www.dependencywalker.com/)。把你的EXE放在那裏,看看它告訴你什麼。您可能必須明確地打開路徑的可視化。 – Bart 2012-08-17 09:29:10

回答

1

歡迎來到Dll地獄!您使用Qt部署

每次你必須要確保

1)對你所編譯的庫相同的版本和相同的編譯器 2)有在系統路徑的其他圖書館沒有衝突 3)如果你編譯調試你必須使用* d.dll版本的庫

請確保例如,如果你的程序是用VC9編譯的話,那麼你的DLL也是用VC9編譯的。

您可以通過一個名爲Dependency Walker的非常有用的程序來了解要鏈接哪些庫。 http://www.dependencywalker.com/

+0

謝謝linello。正如你告訴我的,問題是因爲它不是同一個編譯器。 – 2012-08-20 11:27:23

+0

不客氣。一定要記住使用相同版本的庫和編譯器,否則這類問題非常頻繁。 – linello 2012-08-20 14:08:19

0

這是你的應用程序被編譯爲不同的版本比的DLL。 如果你從VS運行它,它會工作嗎?

相關問題