Programy napisany w Qt Creator nie uruchamiają się.

0

Witam.

Mam problem z programami w napisanymi w Qt creator. Jeśli je otwieram w środowisku Qt to wszystko pięknie działa, ale gdy chcę już sobie otworzyć program normalnie przez ikonkę to wyskakuję błąd ,,Aplikacja nie została właściwie uruchomiona". Jest to prosty kalkulator tak więc na porzątku potrzebował jedynie Qt5cored.dll które mu dostarczyłem i teraz ten błąd... ktoś wie o co chodzi?

1

Jaka wersja Qt i pod jaki kompilator?

To raczej niemożliwe by program w Qt5 potrzebował jedynie Qt5cored.dll. Prawie na pewno potrzeba jeszcze icuuc51.dll, icuin51.dll, icudt51.dll — chyba że przekompilowałeś Qt sam bez ICU.

Jeśli to jest program okienkowy, a build Qt nie ma "opengl" w nazwie, to dojdzie jeszcze libGLESv2.dll i d3dcompiler_47.dll (wersja może się różnić).

Do tego dochodzą biblioteki runtime, czyli msvcr100.dll pod Visual C++ albo libgcc_s_dw2-1.dll pod MinGW (jak wyżej - dokładna wersja może być inna).

PS. sama nazwa Qt5cored.dll sugeruje że to jest Debug build. Zbuduj wersję Release programu.

0

O większość dll-ek Qt bezproblemowo poprosi, ale przy kilku wywali się bez podania przyczyny. Może to Ci pomoże: http://4programmers.net/Forum/992682

0

Tak był to Debug build. Zbudowałem wersję Realase programu. I podczas uruchomienia program poprosił o te biblioteki które wymieniłeś na początku: Qt5core, icuuc51, icuin51, icudt51. Bo dostarczeniu mu tych plików wywala błąd ,,Nie znaleziono punktu wejścia procedury_Z8qWinMainP11HINSTANCE_S0_PciRiR7QVectorIS1_E w bibliotece Qt5Core.dll.

Wersja Qt to 5.2.0 a kompilator to MinGW.

1

Dałeś mu chyba inny Qt5Core.dll niż trzeba. Qt używane przez sam QtCreator nie zawsze jest w tej samej wersji co Qt używane do kompilowania programów.

0

TO co mam teraz zrobić? Pobrałem z internetu inne Qt5Core.dll i dalej ten sam błąd. Poprzednie było z biblioteki Qt.

1

Nie z internetu.
FolderQt\WersjaQt\kompilator\bin
Np. u mnie dla mingw i Qt 5.2 to jest C:\Qt\5.2.0\mingw48_32\bin

0

No cóż pomogło to na poprzedni problem, ale teraz pojawia się błąd jak przedtem czyli ,,Aplikacja nie została właściwie uruchomiona".

0

Udostępnij gdzieś tego exeka wraz z dllkami, to się zajrzy czego mu brakuje.

0

Nie masz katalogu platforms.

0

A o które platforms dokładnie chodzi? Bo jak wyszukuję to jest tego mnóstwo w różnych folderach?

1

To obok katalogu bin, z którego brałeś pozostałe dll. Nie musisz kopiować całej zawartości, interesuje Ciebie tylko qwindows.dll (bez d na końcu).

0

Kurde no nie wiem czemu mi to wszystko nie działa. Przekopiowałem qwindows do katalogu i dalej to samo. Moż liwe że mam złe dll przekopiowane tzn. z różnych folderów?

1

qwindows.dll musi być w folderze platforms, nie bezpośrednio obok innych dll-ek. Tak jak napisałem w podlinkowanym poście ( http://4programmers.net/Forum/992682 ) powinno to wyglądać mniej więcej tak: https://i.imgur.com/cCAFyM1.png (to jest wersja dla visual C++ i Qt 5.1.1, więc kilka dll jest innych, ale chodzi o sam katalog platforms.

0

Ja możesz to weź sprawdź mi ten program u siebie. Dodałem folder platforms... bo być może problem jest u mnie z systemem albo czymś innym. http://www.speedyshare.com/wQUhm/Kalkulator.rar

A tak w ogóle to straszne jest to że trzeba nawet do najprostszego programu dodawać tyle plików...

0

Spróbuj myk z PATH'em zmienna środowiskowa.

Ustaw na np.: C:\Qt\5.2.0\mingw48_32\bin.

Jeśli używasz kompilatora mingw48 to powinno działać ;)

1
dejmien napisał(a):

Ja możesz to weź sprawdź mi ten program u siebie. Dodałem folder platforms... bo być może problem jest u mnie z systemem albo czymś innym. http://www.speedyshare.com/wQUhm/Kalkulator.rar

A tak w ogóle to straszne jest to że trzeba nawet do najprostszego programu dodawać tyle plików...

Tutaj brakuje jeszcze co najmniej libstdc++-6.dll, libwinpthread-1.dll, Qt5Gui.dll, Qt5Widgets.dll.

Niestety, Qt 5 na windowsie wymaga przesadnie dużo bibliotek, ale niedługo powinny pojawić się instalatory, które temu zaradzą. Na innych systemach nie jest to problemem.

1

Przy uruchomieniu aplikacji powinno mu pisać, jakiej biblioteki brakuje.

0

Podziałało jak wziąłem wpadłem w folder bin kompilatora, wyszukałem wszystko co kończy się na dll... control a, control c i control v w folderze mojego programu i teraz działa :-). Tyle że jak to szkoły zaniosę kalkulator warzący 1,5 gb to nauczyciel padnie ze śmiechu... :-)

Ok usuwałem po kolei biblioteki i udało mi się ,,odchudzić program" :-P

Dziękuję bardzo za pomoc.

0

A jak przeniesiesz tylko plik .exe do innego folderu, to już przestanie działać. Zatem! Kopiujesz dll'ki do Windows\system32. Tylko upewnij się, czy to są biblioteki komplilatora w którym napisałeś program!.

Biblioteka MINGW nie zadziała na aplikacji napisanej pod innym kompilatorem.

Potem. Ustawiasz PATH na C:\windows\system32 i cieszysz się działającym programem:).

Na kompie nauczyciela, robisz to samo. Biblioteki do systemu, PATH i jazda.

http://www.java.com/pl/download/help/path.xml

2

Ja używam prostego sposobu pod Total Commanderem:
F3 na exeku (podgląd pliku), F7 (szukanie tekstu), .dll, Enter, F3, F3, F3, F3...
Większość miejsc gdzie pojawia się tekst «.dll» to nazwy wymaganych dll-ek.

0

Dziala przekopiowałem z folderu ~/qt5/bin biblioteki dll (a nie jakies bzdurne programy typu rozwiaz problemy) thx

1 użytkowników online, w tym zalogowanych: 0, gości: 1