2011-02-10 9 views
6

Po próbie znalezienia odpowiedzi na mój problem przez pewien czas zdecydowałem się zapytać, czy ktoś ma ten sam problem.cmake Generator Xcode tworzy projekt, który nie może zbudować

Mam projekt C++, który używa systemu budowania cmake. Używam MacBooka Pro do programowania, więc kiedy używam terminala, wszystko działa jak czar i mogę zbudować swój projekt.

Jednak dzisiaj dowiedziałem się, że mogę korzystać z Xcode po utworzeniu danego projektu przy użyciu generatora cmake:

$> cmake -G Xcode . 

to działa projekt i wygląda dobrze, z wyjątkiem faktu, że nie mogę Zbuduj cokolwiek. Nie rozpoznaje symboli zawartych w dołączonych plikach. Czy ktoś wie, dlaczego tak jest? Wydaje się, że zmienne środowiskowe cmake nie są przekazywane do Xcode.

Czy ktoś może wskazać mi właściwy kierunek? Dziękuję wszystkim,

aa

+0

Jaki jest konkretny błąd, który widzisz? Czy "nie można znaleźć pliku xyz.h" lub czegoś innego w wynikach kompilacji Xcode? – DLRdave

+0

Generator Xcode CMake działa dobrze na samym CMakerze, co widać po nocnych wynikach panelu kontrolnego dla CMake (zobacz na http://www.cdash.org/CDash/index.php?project=CMake). Czy wypróbowałeś już "out-of-source"? Do jakich zmiennych środowiskowych się odwołujesz? Jaki jest konkretny błąd, który widzisz? Czy widzimy twój kod źródłowy? – DLRdave

Odpowiedz

5

pominąć kropkę (.) W wywołaniu polecenia, pozostawiając tylko cmake -G Xcode. Kiedy po raz pierwszy zacząłem używać CMake, również generowałem projekty Xcode, które nie byłyby budowane. Używałem interaktywnego interfejsu użytkownika kreatora CMake, który doprowadził do świata bólu. Jak to często bywa, najprostszym sposobem jest użycie najprostszego polecenia. Kiedy przestałem używać kreatora i właśnie używałem domyślnych ustawień, otrzymałem projekt Xcode, który buduje niezawodnie.

+0

Nie rozumiem dlaczego, ale to działało jak czar. Dzięki za publikację! – iwasrobbed

+1

Przy okazji stwierdziłem, że CMake również nie lubi, gdy próbujesz zrobić projekt w katalogu, który ma nazwę/name i narzeka, że ​​nie może go zbudować. Zamiast nich należy używać nazw uproszczonych do katalogów roboczych zawierających tylko znaki alfanumeryczne – iwasrobbed