2013-04-02 64 views
3

我已經使用Qt5和Visual Studio 2010完成了一個大型項目。使用運行按鈕,一切都在Visual Studio內部。我的Qt5可執行文件不能在Visual Studio 2010之外運行

但是我的目標當然是在沒有視覺工作室的情況下將其發佈給其他人。

我的問題是:我無法在Visual Studio外運行.exe。起初我被問到幾個DLL,我發現他們都在Qt5 bin文件夾中。

但知道我擺脫了這些消息,當我不想打開我的exe時,沒有任何反應。 只是沒有.....

我什至不能找到我的exe在Windows任務管理器。

這裏有人知道這個問題的答案嗎?

+0

你應該靜態鏈接到Qt5。不知道如何在VC中做到這一點。 – UldisK

+1

不,你不能使用靜態鏈接,除非你的Qt是靜態構建的。另外還有一些授權問題。 – dtech

回答

2

有一些dll文件在運行時加載,不存在任何錯誤,警告或任何不存在的時候(對依賴項walker也完全透明)。這是platforms\qwindows.dll - 請注意,它必須位於相對於可執行文件的platforms\子文件夾中。您可能也會缺少libEGL.dlllibGLESv2.dll

+0

是的,我認爲你是對的!我試圖把我的exe文件放在qt bin文件夾中,它工作正常!但是我找不到你正在談論的子文件夾。 我正在使用Qt5。 你知道我怎麼知道我的程序試圖加載哪個dll? 謝謝你的回答!問題現在已經解決不遠了! – Maxx

+0

缺少的是libEGL.dll 謝謝!你幫了很多忙! – Maxx

+1

在運行時加載的三個dll是平臺插件,ligEGL和libGLESv2 - 平臺插件最初在'qtbase/plugins/platforms'中。您可以從那裏複製它並放入應用程序的文件夾中,只需記住將其與平臺文件夾本身一起使用即可。其餘的DLL需要與exe文件位於同一路徑,只有平臺插件需要單獨的文件夾。 – dtech

0

的Dependency Walker是不是在這種情況下非常有用,因爲它顯示了非常奇怪的DLL文件丟失:API-MS-WIN-CORE-PRIVATEPROFILE-L1-1-1.DLL等

您可以使用QT5。 x cmd提示符(5.x是您正在使用的版本)並從build目錄運行windeployqt.exe。它會自動查找並將所有必需的dll文件複製到您的輸出目錄。

相關問題