2013-09-22 17 views
6

Zacząłem od Qt a while back. Pobrałem wersję 32-bitową systemu Windows (666mB) i nic więcej. Zrobiłem prostą aplikację kalkulatora. Aplikacja działa, gdy uruchomię ją od twórcy Qt, ale zbudowany exe pokazuje biblioteki dll brakuje. Nie chcę używać programu do obsługi zależności. Chcę utworzyć kompilację statyczną (czytam o niej, ale nie mogę jej uruchomić).Tworzenie statycznej kompilacji (samodzielna aplikacja) z Qt

Moim celem jest stworzenie w pełni funkcjonalnego kalkulatora (bez instalatora), bez konieczności ręcznego dodawania zależności. Przeczytałem o konfiguracji -static, ale nie wiedziałem, jak z niego korzystać. Z góry dziękujemy za pomoc.

+1

Zobacz to pytanie: http://stackoverflow.com/questions/1458252/static-build-in-qt-on-windows-vista?rq=1. Wyjaśnia, jak statycznie budować Qt. Należy pamiętać, że statyczna wersja Qt jest przeznaczona dla niekomercyjnych aplikacji. –

+0

Nie zrozumiałem tego. czy mógłbyś podać mi bardziej szczegółowy samouczek? –

+0

Zobacz także [Jak zbudować statyczny Qt 5?] (Http://stackoverflow.com/q/15340688/341970) – Ali

Odpowiedz

8

Musisz zbudować Qt samodzielnie ze źródła. Będziesz zdecydowanie chcesz utrzymać dwie wersje Qt. Do debugowania powinieneś użyć współdzielonej kompilacji, ponieważ ma ona rozsądne czasy łącza. W celu wydania, powinieneś użyć statycznej kompilacji, definiując generowanie kodu czasu łączącego, aby zachować mniejszy plik wykonywalny i oczekiwać, że kompilacja trywialnej aplikacji zajmie minutę. Dzieje się tak dlatego, że "link" naprawdę generuje kod maszynowy zarówno dla Qt, jak i aplikacji, a kod jest specyficzny dla aplikacji, dzięki czemu generalnie działa lepiej.

Sposób, w jaki robisz to bez marnowania miejsca na dysku dla wielu kopii źródła, polega na użyciu kompilacji Qt z zewnątrz. Do tej pory statyczna kompilacja Qt 5.1.1 jest zepsuta, więc poniższy tekst działa tylko dla Qt 4, z Visual Studio.

  1. Pobierz źródło do, powiedzmy, C:\Qt\4.8.5.

  2. Utwórz C:\Qt\4.8.5-shared. Otwórz konsolę Visual Studio, CD i uruchom C:\Qt\4.8.5\configure.exe -shared z dowolnymi innymi opcjami, które możesz mieć. Następnie zbuduj go, używając nmake lub jom.

  3. Utwórz C:\Qt\4.8.5-static. Otwórz konsolę Visual Studio, CD i uruchom C:\Qt\4.8.5\configure.exe -static -ltcg z dowolnymi innymi opcjami, które możesz mieć. Następnie zbuduj go, używając nmake lub jom.

Będziesz potrzebować link the plugins statically to your release build of the application.

Qt Creator ułatwia korzystanie z wielu wersji Qt równolegle. Rutynowo buduję używając zarówno Qt 4 i Qt 5, zarówno statycznych, jak i współdzielonych, z lokalnymi poprawkami do Qt 5, aby uzyskać statyczną kompilację do działania.

+0

Czy możesz wyjaśnić, w jaki sposób statyczna kompilacja Qt 5.1.1 jest zepsuta? Czy wiesz, czy zostało to naprawione w wersji 5.2? Chciałbym również wiedzieć, jakie lokalne poprawki zrobiłem, aby statyczna kompilacja działała. +1 za odpowiedź. – JBentley

+1

@JBentley Zobacz [tę odpowiedź] (http://stackoverflow.com/a/21862990/1329652). –

Powiązane problemy