Qt5 - niepotrzebne .dll

Qt5 - niepotrzebne .dll
PoziomeQ
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 8 lat
  • Postów:133
0

Cześć mam taki problem:
Kiedy próbuje odpalić swoją aplikację z pliku .exe qt wymaga dodania pewnych plików .dll (co jest oczywiście normalne)
jednakże nie normalne jest to że wymaga on kompletnie niepotrzebnych plików np:

Kopiuj
Qt5Qml.dll
Qt5OpenGL.dll
Qt5Sql.dll

w mojej aplikacji nie korzystam z QML, OpenGL, czy baz danych SQL, a mimo to aplikacja wymaga tych bibliotek przez co całość waży ok. 100 mb co jak na prostą appke jest zdecydowanie za dużo...
z góry dziękuję za pomoc ;)

PoziomeQ
PS. Odpalam na systemie Windows 7 64bit
MarekR22
Moderator C/C++
  • Rejestracja:około 17 lat
  • Ostatnio:3 minuty
0

Masz źle napisany plik *.pro. Jest w nim coś za dużo. Zapewne na samym początku użyłeś złego kreatora projektu.
Pokaż plik *.pro.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 godziny
0

Qt5 tak ma. Dlatego dałem sobie z nim spokój. Chociaż chętnie wysłucham rozwiązania ;-)

EM
podpisuje się pod pytaniem PoziomeQ - na co przeszedłeś z Qt?
PoziomeQ
  • Rejestracja:prawie 14 lat
  • Ostatnio:ponad 8 lat
  • Postów:133
0

plik .pro

Kopiuj
#-------------------------------------------------
#
# Project created by QtCreator 2013-03-27T21:01:50
#
#-------------------------------------------------

QT       += core gui webkitwidgets xml

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = MissedTV
TEMPLATE = app


SOURCES += main.cpp\
        tv.cpp \
    about.cpp

HEADERS  += tv.h

FORMS    += tv.ui

RESOURCES += \
    resources.qrc

@Azarien
na co przeszedłeś z Qt? bo też sie zastanawiam nad czymś nowym...

Azarien
Przeszedłem na WinAPI. Tak, wiem, nie takiej odpowiedzi wszyscy oczekiwali ;-)
Azarien
Akurat ten projekt nie ma dużo GUI, więc to nie jest wielki problem, a ciężkiej kobyły się pozbyłem.
HO
  • Rejestracja:ponad 13 lat
  • Ostatnio:około 11 lat
  • Postów:283
0

Webkit wymaga dll od qml i sql. Tak więc niestety to musisz mieć gdy używasz webkit ale gdybyś nie potrzebował to wtedy tamte dll nie będą wymagane(chyba że będziesz robił aplikację z qml lub sql). OpenGL nie jestem pewien ale zapewne też webkit wymaga. W tym przypadku on jest winowajcą zależności o których napisałeś.


Jeśli uważasz mój post za wartościowy - daj punkt.
Mój post pomógł Ci rozwiązać problem - zaznacz go. Pozdrawiam
Zobacz pozostałe 2 komentarze
EM
cytując autora "...a mimo to aplikacja wymaga tych bibliotek przez co całość waży ok. 100 mb co jak na prostą appke jest zdecydowanie za dużo..." - czyli ten narzut nie jest taki pomijalny ;d
Azarien
to chyba w wersji debug, release'owe dllki Qt nie są AŻ TAK wielkie.
HO
@emacs robiąc aplikację w dot netach czy innych frameworkach MS też jest narzut i niejednokrotnie niemały ale wszystko siedzi w folderach systemowych - gdyby to zliczyć to niemal każda prosta apka ma kilka mb narzutu.
Azarien
tak, to prawda, ale .Net na większości komputerów z Windowsem już jest zainstalowany, a exek aplikacji robi się śmieszne mały — wiem że to niesprawiedliwe, że Nokia/Digia nie ma możliwości zintegrowania bibliotek z Windowsem, ale cóż ;-)
HO
@Azarien możliwość ma ale raczej sprawiłoby to więcej szkód niż korzyści(nadpisywanie różnych wersji itp) :)
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 godziny
2

Odświeżę temat, by się pochwalić przekompilowanym Qt, znacznie odchudzonym o zbędne DLL-ki.

Użyłem Visual C++ Express 2010 SP1. Oficjalne źródła qt-everywhere-opensource-src-5.1.1. Składnia configure:

Kopiuj
configure -prefix d:\qtlite -nomake tests -nomake examples -debug-and-release -opensource -shared -opengl desktop -no-icu -no-angle -no-sse2 -no-sse3 -no-ssse3 -no-sse4.1 -no-sse4.2 -no-avx -no-avx2 -no-mp

Skompilowany program okienkowy (prosta forma) wymaga tylko:

Kopiuj
Qt5Core.dll
Qt5Gui.dll
Qt5Widgets.dll
msvcr100.dll
msvcp100.dll

Żadnych GLES, OpenGL, ICU, czy Direct3D. Razem 13 mega zamiast prawie 40.

edytowany 2x, ostatnio: Azarien
KA
No to ładnie :). Na Linuxie forma zajmuje 27KB, ale trzeba mieć bibliotekę ważącą ponad 40MB.
EM
Rozumiem że po tym zabiegu winapi odchodzi do lamusa? xd
several
DObry post na mikrobloga.
MarekR22
Qt ma tą brzydką wadę, że wszystkie zasoby umieszczą standardowo w dll-kach i plikach wykonalnych. Jeśli wziąć pod uwagę, że Qt wpiera kilka stylów, to biblioteki potrafią się nieźle roztyć. Nie wiem jak to jest w Qt5, ale obiecywali, że wszystkie zasoby zostaną wydzielone do wtyczek (nie wiem w jakim stopniu spełnili obietnicę). Do tego dochodzi tona różnych featureów, których zwykle się nie używa. W każdym razie eksperymentując z configure można jeszcze bardziej zredukować rozmiar biblioteki (podobno można zejść do ~6MB ale tego nie sprawdzałem). np -no-qt3support
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)