2013-04-07 28 views
3

我用獨立版本的Qt(mingw)構建了我的第一個C++ GUI應用程序,並且工作正常。我在另一臺計算機上嘗試過它,並立即用Visual C++運行時庫錯誤壓縮。Qt的GUI應用程序在我的電腦上工作,但不是另一個?

我實際上測試了將整個bin文件夾複製到另一臺PC並從那裏運行應用程序,仍然是相同的。 什麼可能導致問題?

其他細節:

我安裝了Visual C++ 2010可再發行,和我複製d3dcompiler_XX.dll了。 我從Qt \ Qt5.0.1 \ 5.0.1 \ mingw47_32 \ bin中獲得了所有的dll。

我沒有鏈接任何東西,而且我一般都沒有鏈接經驗。 我讀了幾篇關於這方面的文章,他們沒有提供解決方案,或者我不明白的解決方案。調試模式也是如此。在我的電腦上,它也在Qt Creator之外運行。

+0

http://qt-project.org/forums/viewthread/23658 – Blood 2013-04-07 19:54:51

+0

@Blood我以前讀過這個,第一步說輸入:cd C:\ path \ to \ Qt configure -static well有在Qt文件夾中沒有名爲configure的程序,所以這是一個無效的命令。 Windows也認爲這一點。我甚至無法通過第一步。 – user2237070 2013-04-07 20:20:28

+0

首先 - 你想建立Qt靜態或動態? – Blood 2013-04-07 20:32:59

回答

1

選中「應用程序依賴」我不能讓MinGW的版本,畢竟上班,甚至強硬的我也跟着上部署一步步的文件,但我現在有一個工作應用程序。

問題的根源在於,一些來自Qt文件夾的DLL註冊和程序達到他們甚至艱難,它不是在同一個文件夾。我認爲與文檔中提到的相比,MinGW版本需要更多的dll,或者它可能只是我的電腦。

這裏是我做過什麼:

1,下載Qt Creator的與Visual Studio編譯器,刪除以外的所有源和重建項目。

2,將此添加到項目文件的開頭:

QMAKE_LFAGS += -Wl,--repath=\\\$\$ORIGIN 
QMAKE_LFAGS += -Wl,--repath=\\\$\$ORIGIN/lib 
QMAKE_LFAGS += -Wl,--repath=\\\$\$ORIGIN/libs 
QMAKE_RPATH= 

這是應該使應用程序的外觀中的DLL。 ,./lib,./libs,但我認爲它什麼都不做,因爲應用程序在lib文件夾中找不到它們。

3,複製在同一文件夾這些DLL:(相同的文檔)

D3DCompiler_43 
icudt49 
icuin49 
icuuc49 
libEGL 
libGLESv2 
Qt5Core 
Qt5Gui 
Qt5Widgets 
Platforms (folder) containing qminimal and qwindows 
msvcr100 and msvcp100 

MinGW的版本需要的libstdC++ - 6,LIBGCC_S_DW2-1和MINGWM10,但即使這些沒有關係不爲我工作。

一般提示:

  • 注意的是,雖然MinGW的下降,如果沒有發現其中的一個錯誤,VS版本不執行任何操作(立即終止沒有任何消息。)
  • 測試依賴性被重命名Qt的文件夾,使您的應用程序將無法找到它的最舒適的解決方案,這樣你就不需要第二臺計算機來測試它,也不unistalling應用程序,如文檔建議。
  • 如果你仍然有可以解決這個蠻力方式,像我一樣,通過使Qt的文件夾的副本,並刪除由一個在原來的元素之一,看到你的程序依賴問題。不幸的是,即使依賴檢查器也沒有提到其中的一些。

祝大家快樂編碼,並與這個職位更成功排除故障。

1

如果你的Qt-App是使用MinGW動態構建的(即使用動態庫),你需要MinGW的dll(類似libgcc_s_sjlj-1.dll,libstdC++ - 6.dll等)。在MinGW安裝目錄中找到這些文件。 (可能是你的Qt的安裝)從Deploy an application on window

相關問題