2009-08-07 15 views
20

Przez ostatnie kilka dni przeszukiwałem wiele forów Qt i Google, ale nie mogłem znaleźć żadnej oczywistej odpowiedzi na to pytanie.Jak zbudować qt ze źródła

Znalazłem opcję -prefix (nawet nieudokumentowaną w systemie Windows), która może zostać dostarczona w celu skonfigurowania w celu określenia innego katalogu instalacyjnego, ale nie jest to w ogóle jasne, że rozdzielono źródła i pliki binarne, ponieważ kompilacja jest nadal wykonywana w systemie. katalog źródłowy, a następnie pliki potrzebne do instalacji są kopiowane do bezpośredniego katalogu instalacji. Próbowałem tej opcji -prefix i pojawiły się pewne problemy. (tzn. nie kopiuje plików .pdb do katalogu instalacyjnego.)

Potem znalazłem this link o tworzeniu kompozycji cieni, ale ma duże ograniczenie, że katalog kompilacji musi być na tym samym poziomie co katalog źródłowy.


Zgaduję, że nie spróbować zrobić zainstalować? Więc spróbuj tego. Powinno się zainstalować Qt w oddzielnym katalogu z dala od źródeł.

Mówisz, że po skonfigurowaniu, powinienem zrobić instalację nmake zamiast po prostu nmake? Wiem, że nmake przetworzy wygenerowane pliki Makefile z qmake i umieści je w źródłowym Qt dir, ale to, co zainstaluje nmake, dokładnie zrobi to, w którym katalogu zainstaluje pliki i jak określić katalog, w którym pliki zostaną zainstalowane.

Zauważ, że ja już to zrobić:

configure -prefix builddir -platform win32-msvc2005 
nmake install 

Efektem powyższych dwóch linii było to, że qt został skompilowany w katalogu źródłowego, a nie bezpośrednio do mojego builddir określonym z prefiksem. Następnie skompilowane pliki zostały skopiowane do mojego katalogu builddir. Miałem nadzieję, że coś, co zbuduje moje pliki Qt bezpośrednio na ścieżce kompilacji, w ten sposób będę potrzebował 4 Gb miejsca na mój katalog źródłowy podczas kompilacji. Również pliki pdb nie zostały skopiowane do mojego buildira, co jest kolejnym problemem.

+0

Czy można budować przy użyciu cmake? –

+0

Opisuje to kompilację typu "out-of-source" dla Qt: http://www.holoborodko.com/pavel/2011/02/01/how-to-compile-qt-4-7-with-visual-studio-2010/# comment-6641 – Dan

Odpowiedz

0

IIRC w systemie Windows, należy wykonać instalację sandbox, nie można wykonać typowej dla systemu UNIX "make install".

Istnieją dwie opcje zwykle na budowę Qt, -prefix instalacji i -prefix/foo

można wybrać jedną, więc jeśli -prefix nie pozwala wpisać make install, wtedy myślę o windowsie musicie użyć trasy -prefix-install, która jest instalacją piaskownicy do katalogu, do którego wyodrębniacie Qt.

Zgaduję, że nie próbowałeś zainstalować? Więc spróbuj tego. Powinien zainstalować Qt w oddzielnym katalogu z dala od źródeł.

+0

Który program '-prefix-install' i' -prefix/path' są opcjami? Nie są one wymienione w wynikach polecenia 'configure.exe --help' –

+0

Napisałem tę odpowiedź 16 miesięcy temu. Być może konfiguracja Qt uległa zmianie. – mxcl

14

Zasadniczo wystarczy uruchomić program configure.exe z katalogu budowania. Na przykład:

mkdir \qt\4.5.2-build 
cd \qt\4.5.2-build 
set PATH=%cd%\bin;%PATH% 
\qt\4.5.2-sources\configure.exe -platform win32-msvc2005 

Gdzie źródła są w \qt\4.5.2-sources, które powodują, że budowa przejść do \qt\4.5.2-build na bieżącym dysku.

Ponadto, musisz mieć perl w swoim PATH, sugerowany jest ActiveLate Perl.

Nie słyszałem wcześniej o tym ograniczeniu, gdy katalogi kompilacji i źródła muszą znajdować się na tym samym poziomie.Jeśli trafisz na ten problem, możesz spróbować obejść go, tworząc dowiązanie symboliczne (patrz: Polecenie mklink).

+0

To nie działa. Błąd mówi, że nie może zawierać jakiegoś pliku .h – user152508

+0

Jaki jest błąd i skąd pochodzą źródła? – rohanpm

+0

Błąd jest w czasie konfiguracji i mówi, że nie może zawierać niektórych qscriptengine.h. Również w mojej próbie katalog kompilacji nie był na tym samym poziomie, co katalog źródłowy (jak w twoim poprzedniku powyżej). Czy to jest istotne? – user152508

0

Przynajmniej problem z brakującymi plikami włączeń (np. Qscriptengine.h) można rozwiązać, dodając tymczasowo polecenie \ qt \ 4.5.2-sources \ include \ Qt do ścieżki dołączania.

0

Przeniosłem budowę cienia z mojego katalogu domowego do folderu w C: i zadziałało. Wiem, że to dziwne, ale tak się stało. Podejrzewam, że musi to być błąd w synchronizacji.

Powiązane problemy