2008-12-18 14 views
44

Gram z Qt już od kilku godzin. Zauważyłem, że qmake produkuje pliki projektu Xcode na Mac OS X zamiast dobrych plików make. Nie chcę uruchamiać Xcode za każdym razem, gdy chcę zbudować "Hello, world".Budowanie Qt Xcode Projekty z linii poleceń

Jak zrobić, aby qmake generował zwykłe pliki Makefile lub, jeśli jest to coś, czego nie da się zrobić na Macu, w jaki sposób mogę skompilować pliki .xcodeproj z wiersza poleceń?

Próbowałem xcodebuild -project myProject -alltargets. Otrzymuję dużą wydajność, a następnie Abort trap.

+0

Wygląda na zły cel. Spróbuj określić dobrze znany cel lub po prostu bez argumentów (zbuduje domyślny cel) i zobacz, co się stanie. – Olie

+0

potrafi jasno określić, jak ustawić zmienną QMAKESPEC na macx-g ++ i podoba mi się QMAKESPEC = macx-g ++ na terminalu, ale kiedy piszę polecenie qmake, to nie byłem w stanie wygenerować dla mnie makefile – issac

Odpowiedz

21

Open-source Qt instalacje binarne dla OS X z Trolltech domyślnie do tworzenia plików .xcodeproj po uruchomieniu qmake. Nie używam XCode do edycji, więc trudno jest go otworzyć, aby skompilować projekt.

Do kompilacji projektów z Terminal.app, wystarczy ustawić zmienną środowiskową z QMAKESPEC do MACX-g ++

Jeśli chcesz tylko skompilować pewien projekt z terminala, przejdź do tego katalogu i uruchomić

qmake -spec macx-g++ 

Po uruchomieniu programu qmake utworzy się plik Makefile, którego można użyć uruchamiając make.

+0

potrafi jasno określić, jak ustawić zmienną QMAKESPEC na macx-g ++ Podobał mi się QMAKESPEC = macx-g ++ na terminalu, ale kiedy piszę polecenie qmake, to nie byłem w stanie wygenerować pliku Makefile dla mnie – issac

+2

@isaac 'export QMAKESPEC = macx-g ++ '(jeśli używasz przynajmniej sh) –

60
$ man xcodebuild 

więc typowy komenda może być coś takiego:

$ xcodebuild -project myProject.xcodeproj -alltargets 
+6

Musiałem napisać pełną nazwę mój plik projektu, aby to działało, np. myProject.xcodeproj –

0

Patrząc na tej części tylnej Ślad:

# 2008-12-18 20: 40: 52,333 xcodebuild [1070: 613] [MT] ASSERTION FAILURE w /SourceCache/DevToolsBase/DevToolsBase-921/pbxcore/FileTypes/PBXCFBundleWrapperFileType.m:174 # Szczegóły: ścieżka powinna być niepustym stri ng, ale jest to pusty ciąg # obiektu: # Metoda: -subpathForWrapperPart: ofPath: withExtraFileProperties: # Temat: {name = (null), num = 1}

Oznacza to, że coś , może jedna z twoich zmiennych konfiguracyjnych, jest pusta, kiedy musi odnosić się do pliku. Zastanawiam się, czy może masz dodatkowy cel w projekcie, który nie działa, więc budowanie z -alltargets jest przyczyną problemu.

Testowałem xcodebuild bez żadnych argumentów w jednym z moich projektów - wykonałem domyślną kompilację mojego projektu bez błędów. Co się stanie, jeśli spróbujesz bez argumentów?

2

Spróbuj w następujący sposób. To musi działać.

xcodebuild -project myProject.xcodeproj -alltargets 

Używam tej metody w większości moich projektów.