Jak skompilować Qt dla programu Visual Studio 2010

137

Miałem problemy ze znalezieniem instrukcji, która zapewnia stabilne rozwiązanie do używania Qt z Visual Studio 2010, więc po zebraniu wszystkich informacji i kilku prób i błędów, chciałbym napisać moje rozwiązanie w przewodniku.

Problem lub dlaczego nie można użyć gotowych plików binarnych?

Wygląda na to, że używanie plików binarnych zbudowanych dla Visual Studio 2008 może działać w niektórych szczególnych przypadkach, ale okazało się, że nie działają. W moim przypadku skompilowali się dobrze, ale generują błędy w czasie wykonywania, takie jak ten:

problem2

lub po uruchomieniu z programu Visual Studio 2010:

problem

Aktualizacja : znalazłem post na blogu analizujący, dlaczego to działa dla niektórych osób, a dla innych nie. Jednym słowem, zależy to od tego, czy masz zainstalowany program Visual Studio 2008 na tym samym komputerze, czy nie. http://blog.paulnettleship.com/2010/11/11/troubleshooting-visual-studio-2010-and-qt-4-7-integration/

Najważniejszą rzeczą (o której głupio nie zdawałem sobie sprawy) był fakt, że NIE MOŻESZ używać skompilowanych bibliotek i bibliotek dll Visual Studio 2008 (dostępnych na stronie Qt), jeśli nie masz zainstalowanego Visual Studio 2008. Powodem jest to, że pobrany pakiet SDK Qt jest kompilacją do debugowania, która jest zależna od VC9.0 DebugCRT, co oznacza, że ​​wymaga zainstalowanego środowiska uruchomieniowego debugowania Visual C ++ 2008, które NIE jest dostępne jako instalator redystrybucyjny. Jedynym sposobem zainstalowania DebugCRT jest zainstalowanie całego programu Visual Studio 2008.

zera
źródło
Dzięki za twój wysiłek. Pomocne może być również wyjaśnienie, dlaczego nie należy używać plików binarnych VS 2008. Opracowałem z nimi kilka prototypowych projektów testowych i VS2010 bez żadnych problemów, ale przypominam sobie, że ktoś wspomniał, że są problemy z wdrożeniem?
Ralf,
Dodałem swoje doświadczenia do ostatniej sekcji. Generalnie znalazłem w sieci wiele raportów, które mówią, że musisz skompilować Qt, jeśli chcesz go używać z VS2010. Jest jedna strona, która informuje, że może to być obecność VS2008.
hyperknot,
Fantastycznie, jestem pewien, że wiele osób uzna to za przydatne :)
Ralf
Hej, oto co dostaję, kiedy to zrobię nmake. I stosuje się następującą przed przystąpieniem do produkcji: configure.exe -release -no-ltcg.
Mateen Ulhaq
2
W przyszłości możesz być zainteresowany, aby wiedzieć, że witryna z dokumentacją Qt zawiera instrukcje instalacji dotyczące kompilacji ze źródeł .
Ephatha

Odpowiedzi:

142

Przede wszystkim bardzo ważne jest, aby zrozumieć, że w przypadku używania Qt z Visual Studio 2010 nie jest możliwe użycie gotowych plików binarnych, które zostały stworzone dla Visual Studio 2008 , ale trzeba je skompilować ze źródła.

Pobieranie Qt

Na https://www.qt.io/download/

Aktualizacja 2017: najnowsza gałąź Qt 4.x (Qt 4.8.6) zawiera 2 gotowe pakiety, które są teraz w sekcji archiwum:

  1. http://download.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2010-4.8.6.exe
  2. http://download.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-vs2008-4.8.6.exe

Nie należy pobierać Qt, klikając „Biblioteki Qt 4.8.6 dla Windows (Visual Studio 2008, 218 MB)” , ale klikając łącze „zip” powyżej.

wybór linków

W tym linku otrzymasz duży plik zip, taki jak „qt-everywhere-opensource-src-4.8.6.zip” . Rozpakuj to do folderu i ustaw jego ścieżkę na ładną i małą, na przykład „E: \ Qt”

Wiersz polecenia programu Visual Studio

Teraz, gdy mamy źródła, musimy zbudować pliki binarne. Aby to zrobić, otwórz Microsoft Visual Studio 2010\Visual Studio Tools\Visual Studio Command Prompt (2010)link z menu Start, a nawet przypnij go do paska zadań (dobry pomysł). To jest specjalny wiersz polecenia, który zawiera wszystkie zmienne ustawione do tworzenia za pomocą narzędzi programu Visual Studio 2010.

Po E:wejściu do wiersza poleceń przejdź do wyodrębnionego folderu Qt za pomocą starej szkoły DOS, co oznacza, że ​​musisz zmienić literę dysku o , wprowadzić katalogi cd Qti wyświetlić zawartość katalogu według dir. Możesz użyć klawisza Tab, aby pomóc Ci w nazwach katalogów. Kiedy dotrzesz do właściwego katalogu, dirpolecenie powinno zwrócić coś takiego.

wiersz poleceń

Budynek Qt

Teraz czas na konfigurację i kompilację. Aby skonfigurować minimalistyczny Qt, używam następujących flag z configure.exe. Po prostu skopiuj i wklej go do wiersza poleceń. Sprawdź w podręczniku referencyjnym Qt, jakiej flagi użyć, a której nie.

configure.exe -release -no-webkit -no-phonon -no-phonon-backend -no-script -no-scripttools -no-qt3support -no-multimedia -no-ltcg

Po configure.exezakończeniu (dla mnie było to 10 minut) musisz rozpocząć proces kompilacji. Z powyższymi flagami zajmie to około 20-30 minut. Aby rozpocząć, wystarczy wpisać:

nmake

Ustawianie zmiennych środowiskowych

Zasadniczo skończyliśmy. Wszystko, co musisz zrobić, to ustawić zmienne środowiskowe ( QTDIRi PATH), które powiedzą programom, gdzie znaleźć Qt. Jeśli korzystasz z systemu Windows 7, możesz użyć następującego polecenia, aby ustawić QTDIRkatalog instalacyjny.

setx QTDIR e:\Qt

Do ustawiania PATH, zdecydowanie polecam użycie edytora ścieżek . W edytorze ścieżek

add the directory of Qt\bin to your PATH

(nie ma znaczenia, czy jest w ścieżce systemowej, czy ścieżce użytkownika)

Jeśli wolisz używać Control Panel\System\Environment Variables, możesz je tam również ustawić.

Dodatek Qt Visual Studio

Proszę bardzo, po wylogowaniu się lub ponownym uruchomieniu, wszystkie aplikacje demonstracyjne Qt powinny uruchomić się poprawnie (polecam zajrzeć do bin \ qtdemo.exe ). Teraz możesz pobrać i zainstalować dodatek Visual Studio (qt-vs-addin-1.1.9.exe) ze strony pobierania Qt, będzie działał idealnie.

dodać

Dodatek A: Oficjalne instrukcje:

Na oficjalnej wiki na stronie Qt znajduje się strona o nazwie Qt 4.8 Instalowanie Qt dla Windows , ale nie znalazłem na niej ważnych informacji.

Bibliografia

Fora Qt DevNet
Zalecane flagi dla minimalistycznej kompilacji Qt
Budowanie Qt 4.5 z Visual C ++ 2010
Jak skompilować Qt jako statyczny
Qt 4.8: Konfiguracja opcji dla Qt Bezproblemowa edycja
zmiennej środowiskowej PATH w
Windows - op111.net

zero
źródło
2
To świetnie, ale dodałbym -qt-sql-sqlite do flag konfiguracyjnych, jeśli nie chcesz mieć problemów z niestandardowym Asystentem Qt. Wygląda na to, że potrzebuje tej wtyczki, aby pomyślnie odczytać bazy danych dokumentacji.
neuviemeporte
Świetny przewodnik! Jedna uwaga - próbowałem ustawić się na dzień lub dwa, a podczas tego procesu dodałem kilka zmiennych ścieżki do mingw - te zepsuły nmake i musiały zostać usunięte, zanim wszystko zadziała.
David Hall
2
Jeszcze jedna uwaga: narzędzia VS odrzucają tworzenie QT, jeśli w ścieżce do folderu, w którym znajdują się źródła QT, znajdują się spacje. Przynajmniej tak jest w moim przypadku.
Roman Kruglov
10
Tylko jedno pytanie: dlaczego Qt nie dostarcza jeszcze prekompilowanej dystrybucji VS 2010?
Matt Montag,
2
Żeby was poinformować. Link w oryginalnym poście już nie działa. Przeszukanie witryny Digia i stwierdzenie, że dodatku w ogóle tam nie ma, zajmuje trochę czasu. Główny link, który należy wykonać, to: qt-project.org/downloads
paul23
25

Qt V4.8.0 zawiera wstępnie skompilowane pliki binarne dla programu Visual Studio 2010, więc nie musisz już tego robić: http://qt.nokia.com/downloads/windows-cpp-vs2010

pietruszka72
źródło
2
parsley72 prekompilowane pliki binarne dla Visual Studio 2010 są przydatne tylko wtedy, gdy planujesz pracować w 32-bitowym trybie debugowania, w przeciwnym razie przewodnik opublikowany przez zsero jest bardzo przydatny, zwłaszcza jeśli chcesz zmienić opcje dotyczące architektury.
Absolutnie! Ale pytanie zostało zadane, zanim gotowe biblioteki były dostępne, więc informuję ludzi, że teraz jest alternatywa.
pietruszka 72
1

Skorzystaj z poniższego łącza, a może być przydatne 1) https://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Developers/Build_Instructions/Prerequisites/Qt#Windows_3 2) http://eecs.vanderbilt.edu /research/hmtl/wp/index.php/qt-vs/

user6303986
źródło
Link do potencjalnego rozwiązania jest zawsze mile widziany, ale dodaj kontekst do niego, aby inni użytkownicy mieli pojęcie, co to jest i dlaczego się tam znajduje. Zawsze cytuj najbardziej odpowiednią część ważnego linku, na wypadek gdyby strona docelowa była nieosiągalna lub została trwale wyłączona. Weź pod uwagę, że fakt, że jest niewiele więcej niż linkiem do zewnętrznej witryny, jest możliwym powodem, dla którego i jak są usuwane niektóre odpowiedzi .
Maximilian Ast