2013-03-01 46 views
4

我已經寫了一個簡單的對話框在寡婦7上使用Qt庫。現在我需要發送該.exe文件給我的朋友,所以他可以使用它。但我也需要發送大約10個.dll文件,以便他可以使用它。我發現了所有這些,併發送了,但他無法打開它。有一些「Visual C++運行時錯誤」。坦率地說,在我的另一臺電腦上,我無法打開它,或者出現同樣的錯誤。我用Google搜索了很多,並已發現不同的答案,如:Qt構建到一個單獨的exe文件沒有dll

  1. 更新的DirectX
  2. 安裝Microsoft Visual C++ 2010再發行組件包(選擇vcredist_x64.exe)

但是這一切並不能幫助我。所以我的問題是:

  1. 爲什麼它的作品在我的電腦,我已經開發了對話框,即是什麼問題?
  2. 我該如何擺脫所有.dll的東西,很容易將其編譯成一個.exe文件?
+1

您有沒有看過這篇文章:http://qt-project.org/wiki/Build_Standalone_Qt_Application_for_Windows? – 2013-03-01 09:02:37

+0

或在Windows上部署: http://qt-project.org/doc/qt-4.8/deployment-windows.html – Pete 2013-03-01 09:19:10

+0

也許還可以創建一個安裝程序。我喜歡innosetup:http://www.jrsoftware.org/isinfo.php – Pete 2013-03-01 09:20:04

回答

5

1.爲什麼它在我的計算機上工作,我開發了那個對話框,即什麼問題?

因爲您的計算機上安裝了VC Runtime。

有兩種方法來解決這個問題,

a.you需要編譯QT,並與多線程(MT)你的EXE,而不是MultiThreadDLL(MTD)。

b.install vc運行時在你朋友的電腦上。

2.我該如何擺脫所有.dll文件,輕鬆將其編譯到一個.exe文件中?

你必須建立所有的QT dll到libs(whit MT),並將你的exe與這些庫鏈接起來。

這很浪費時間。你仍然需要Windows dll。無論如何,如果你仍然想靜態鏈接Qt的這些鏈接可能是非常有用的:

  1. http://qt-project.org/wiki/How_to_build_a_static_Qt_version_for_Windows_with_gcc
  2. http://qt-project.org/doc/qt-4.8/deployment-windows.html
+0

但我試圖安裝VC運行時(vcredist_x86.exe我猜)在我的另一臺電腦上,它沒有幫助。爲什麼? – Narek 2013-03-01 11:14:50

+0

確保您爲編譯器安裝了正確的運行時。對於x64和32位,每個編譯器版本都有不同的運行時間,甚至服務包的運行時間也不同。最重要的是,確保您使用與構建應用程序完全相同的編譯器構建了Qt。 – drescherjm 2013-03-01 12:56:00

+0

如果所有這些都滿足,我將運行depends.exe來嘗試確定缺少的內容。 – drescherjm 2013-03-01 12:56:38

相關問題