2013-11-02 92 views
3

我構建了一個我想分發給幾個人的Qt應用程序。 在安裝了QtCreator一臺電腦,我可以把它放置了一堆的Qt的DLL運行(我插入它抱怨的)相同的文件夾在可執行。但是,如果我卸載Qt或在沒有Qt的計算機上試用它,則可執行文件不會執行任何操作。沒有錯誤,只是沒有窗口或過程,當我運行它。我需要什麼dll來分發我的Qt應用程序?

這是我已經試過:

-put從可執行qt的文件夾,每一個DLL。沒有效果。

用的Dependency Walker經營;它。我不完全相信我正確地使用它,但是,在卸載Qt和執行必要的DLL後,它不會給我任何丟失或無效的模塊。

GetProcAddress(0x75AC0000 [KERNEL32.DLL], "SetDefaultDllDirectories") called from "MSVCR110.DLL" at address 0x6AC0FD4F and returned NULL. Error: The specified procedure could not be found (127). 

GetProcAddress(0x75AC0000 [KERNEL32.DLL], "GetCurrentPackageId") called from "MSVCR110.DLL" at address 0x6AC0FDFA and returned NULL. Error: The specified procedure could not be found (127). 

QT間期,我可以告訴相關沒什麼:剖析等之後只是一對夫婦在記錄紅線。

我測試的虛擬機上(試圖模擬一個非開發機)與32位Windows 7的MSVC REDIST安裝2010和2012。 這是Qt 5.1.0 MSCV2012-32bit。而且我對64位版本也有同樣的問題(儘管我還沒有使用64位版本的依賴關係者)。

有一些步驟我失蹤?

回答

1

我發現你需要用一些插件在安裝文件夾(你找到了包括和bin文件夾)

特別是platforms子目錄和插件子目錄中的dll添加一個子目錄都需要一個GUI

編輯qminimale.dll和它windows.dll:要明確增加一個子目錄平臺的目錄與exe文件,並添加qminimale.dllwindows.dll

+0

謝謝,現在運行。儘管如此,數據庫功能現在不起作用。這是sqlite。我已經添加了包含「sql」的所有dll的sqldrivers子目錄,但這也不起作用。 – slicedtoad

+0

Nvm,我有64位qsqlite.dll而不是32位的。畢竟依賴步行者證明是有用的。 – slicedtoad

+0

此外,它應該是qwindows.dll不windows.dll – slicedtoad

相關問題