2013-05-07 21 views
6

Używam Qt5 z Qt Creator.Brak pliku Qt5Widgets.dll?

Mój program działa dobrze, jeśli uruchomić go z Qt samego Stwórcy, ale gdy próbuję uruchomić plik z debug lub release folderze .exe, będę się tylko błąd:

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

I m nowy do Qt i nie mam pojęcia, co to powoduje, nie znaleziono żadnych przyzwoitych wyników z google. Próbowałem już przeinstalować Qt5 (w tym twórcę), ale to nie pomogło.


Mój plik .proj wygląda następująco:

TEMPLATE = app 
TARGET = test 

QT += \ 
    core \ 
    gui \ 
    widgets \ 

SOURCES += \ 
    main.cpp 

A moja main.cpp wygląda następująco:

#include <QApplication> 
#include <QWidget> 

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

I to wszystko kod mam.

Odpowiedz

1

Po uruchomieniu aplikacja zbudowana z Qt, trzeba mieć wszystkie dll wymaganych modułów Qt używane w kodzie (Qt5Widgets.dll, Qt5Core .dll, itp.) w tym samym folderze, co twoja aplikacja.

Nie można użyć funkcji addLibraryPath() do tego celu, ponieważ przed uruchomieniem tej metody program musi zostać uruchomiony. Nie można go uruchomić, jeśli nie znajdzie obowiązkowej biblioteki w tym samym folderze.

Potrzebujesz również innych bibliotek do uruchomienia programu Qt5 w zależności od używanych modułów. Specyficzne dla systemu Windows są wymienione tutaj Statically linked app with QT gives error: Failed to load platform plugin "windows".

Potrzebne mogą być również inne biblioteki: - plugins/qjpeg.dll, itp., Jeśli chcesz załadować pliki obrazów w swoim GUI. - sqldrivers/qsqlite.dll, itp. Jeśli używasz bazy danych (potrzebujesz tylko sterowników, których używasz) Możesz użyć addLibraryPath() do ustawienia konkretnych lokalizacji, ale powinieneś tego unikać i starać się jak najwięcej, aby umieścić je bezpośrednio w prawym podfolderze w pobliżu aplikacji.

Znajdziesz tu informacje o bibliotekach wymaganych przez poszczególne moduły Qt5 w Internecie. Możesz także zajrzeć do folderów instalacyjnych ulubionych programów, aby zobaczyć, jakie biblioteki są im potrzebne.

1

Mam nadzieję dodaje pomoże Ci zrozumieć, dlaczego: http://doc.qt.io/qt-5/deployment.html

+0

Dzięki za odpowiedź wydaje się, że to rozwiązanie. Jakiej ścieżki jednak użyć dla 'addLibraryPath()'? Mam dwa różne pliki 'Qt5Widgets.dll' znajdujące się w następujących katalogach:' C: \ Qt \ Qt5.0.2 \ 5.0.2 \ msvc2012_64 \ bin' i 'C: \ Qt \ Qt5.0.2 \ Tools \ QtCreator \ bin'. –

+0

Po skonfigurowaniu projektu wskazuje się, który z qt będzie używany. W twoim przypadku myślę, że to C: \ Qt \ Qt5.0.2 \ 5.0.2 \ msvc2012_64 \ bin – AnatolyS

+0

link prowadzi do tak pięknego błędu 404. – BaldDude

Powiązane problemy