2014-01-24 37 views
0

我目前正在製作一個使用C++和Qt的簡單計算器。但是,我需要部署它才能在其他計算機上運行?我需要包括哪些Qt dll文件以及如何操作?我對部署一無所知,這就是爲什麼我需要幫助。用於部署Qt應用程序的文件

+1

Google? - https://qt-project.org/doc/qt-5.0/qtdoc/deployment-windows.html –

回答

1

您應該將Qt DLL放在可執行文件的發行版上。這些是QtCore4.dll,QtGui4.dll,也可能是你用過的其他模塊。這些dll文件位於bin文件夾中已安裝的Qt目錄中。如果您使用的是MSVS2010,則還應該放置msvcr100.dll和msvcp100.dll。如果你使用的是插件,你應該將他們的dll放在你的exe文件名爲「plugins」的文件夾中。在使用圖標和圖像的情況下,您應該將它們的dlls(如qico4.dll和qsvg4.dll)放在名爲「imageformats」的文件夾中。

1

我認爲這個問題已經被回答過了,但以防萬一我會分享我在Qt項目文件中用於此目的的片段。

在這個例子中我假設你有一些環境變量QTBASE和QTVER在哪裏以及你Qt安裝的正確的值,我認爲你必須有cpbashmkdir。或者您可以更改這些命令,以便使用通常用於複製文件和創建目錄的任何內容。請注意0​​的路徑。在分發中(至少在我的安裝中)是plugins/platforms/qwindows.dll,但部署副本中的platforms/qwindows.dll。至少這是我能夠實現它的唯一方法。我不記得在文檔中提到過這個,但也許我錯過了一些東西。

# 
# Copy Qt dependencies 
# 
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/Qt5Core.dll" "$$OUT_PWD") 
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/Qt5Gui.dll" "$$OUT_PWD") 
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/Qt5Widgets.dll" "$$OUT_PWD") 
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/libgcc_s_dw2-1.dll" "$$OUT_PWD") 
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/libstdc++-6.dll" "$$OUT_PWD") 
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/libwinpthread-1.dll" "$$OUT_PWD") 
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/icudt51.dll" "$$OUT_PWD") 
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/icuin51.dll" "$$OUT_PWD") 
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/bin/icuuc51.dll" "$$OUT_PWD") 
system("bash -c \"mkdir -p $$OUT_PWD/plugins\"") 
system("bash -c \"mkdir -p $$OUT_PWD/platforms\"") 
system("cp -vuL %QTBASE%/%QTVER%/mingw48_32/plugins/platforms/qwindows.dll" "$$OUT_PWD/platforms/") 
1

如果您使用QT Creator,那麼您只需將QT DLL與可執行文件一起發貨。這意味着,DLL必須位於與可執行文件相同的文件夾中。通常程序應該告訴你它需要什麼DLL。試着在沒有QT的計算機上啓動你的exe,你會明白我的意思。

如果您改用Microsoft Visual Studio,則還必須在目標計算機上安裝Visual C++ Redistributable。