2013-05-07 284 views
6

我正在Qt Creator中使用Qt5。Qt5Widgets.dll不見了?

我的程序工作得很好,如果我啓動它從Qt Creator的本身,但如果我嘗試從debugrelease文件夾.exe文件,我只會得到一個錯誤:

The program can't start because Qt5Widgets.dll is missing from your computer. 
Try reinstalling the program to fix this problem. 

我新的Qt,並不知道是什麼原因導致這一點,沒有找到任何體面的結果從谷歌。 我已經嘗試重新安裝Qt5(包括創建者),但它沒有幫助。


.proj文件看起來像這樣:

TEMPLATE = app 
TARGET = test 

QT += \ 
    core \ 
    gui \ 
    widgets \ 

SOURCES += \ 
    main.cpp 

而且我main.cpp看起來是這樣的:

#include <QApplication> 
#include <QWidget> 

int main(int argc, char **argv) 
{ 
    QApplication app(argc, argv); 
    QWidget window(); 
    window.show(); 
    return app.exec(); 
} 

而這一切,我的代碼。

回答

1

當您啓動使用Qt構建的應用程序,你需要有在你的代碼(Qt5Widgets.dll,Qt5Core使用Qt的模塊所需的所有DLL .dll等)與您的應用程序相同的文件夾中。

您不能爲此使用addLibraryPath(),因爲您的程序必須在執行此方法之前運行。如果它沒有在同一個文件夾中找到必需的庫,它將無法運行。

您還需要一些其他庫來運行Qt5程序,具體取決於您使用的模塊。這裏列出了Windows的具體內容Statically linked app with QT gives error: Failed to load platform plugin "windows"

您可能還需要其他庫: - plugins/qjpeg.dll等,如果您要在GUI中加載圖像文件。 - sqldrivers/qsqlite.dll等,如果你使用數據庫(你只需要你使用的驅動程序) 對於這些,你可以使用addLibraryPath()來設置特定的位置,但你應該避免這種情況,並儘可能地嘗試把他們直接在您的應用程序附近的正確的子文件夾中。

您可以在網上找到關於每個Qt5模塊所需庫的一些信息。您還可以查看您最喜愛的程序安裝文件夾,以查看它們需要哪些庫。

1

我希望以下將幫助你理解爲什麼: http://doc.qt.io/qt-5/deployment.html

+0

感謝您的回答,這似乎是解決方案。但是,我應該爲'addLibraryPath()'使用哪條路徑?我有兩個不同的'Qt5Widgets.dll'文件,位於以下目錄中:'C:\ Qt \ Qt5.0.2 \ 5.0.2 \ msvc2012_64 \ bin'和'C:\ Qt \ Qt5.0.2 \ Tools \ QtCreator \ bin'。 – 2013-05-07 20:54:23

+0

當你配置你的項目時,你指出哪一個qt將被使用。在你的情況下,我認爲,它是C:\ Qt \ Qt5.0.2 \ 5.0.2 \ msvc2012_64 \ bin – AnatolyS 2013-05-08 05:36:34

+0

鏈接導致瞭如此可愛的錯誤404. – BaldDude 2015-10-09 16:37:25