2011-09-27 7 views
7

Mam projekt oparty na makefile, który buduje mój kod na wielu platformach. Na moim Macu chcę jednak użyć Xcode do debugowania. Skonfigurowałem Xcode jako zewnętrzny Build Build. Mogę uruchomić aplikację z poziomu Xcode. Dane wyjściowe są wyświetlane w Xcode, a jeśli aplikacja się zawiesza, wchodzi do debuggera, ale gdy działa, debugger nie może zlokalizować plików źródłowych, więc widzę tylko dane wyjściowe zespołu. Jak mogę powiedzieć Xcode, gdzie zlokalizować źródło?Xcode 4 zewnętrzny projekt kompilacji i debugowanie

Nie mogę również ustawić punktów przerwania, ale myślę, że to wszystko jest ten sam problem.

+0

I nie mógł znaleźć rozwiązanie tego problemu, więc dałem się i stworzył normalny projekt dla Xcode biblioteka. To oznacza, że ​​muszę zachować także wersje Makefile, Xcode i prawdopodobnie Visual Studio, ale przynajmniej odzyskałem swój debugger. – jdswain

Odpowiedz

6

Udało mi się rozwiązać problem nie zatrzymywania się w pułapkach, ustawiając niestandardowy katalog roboczy dla pliku wykonywalnego. Przed tą zmianą udało mi się z powodzeniem zbudować system SCONS z Xcode 4. Mój kod byłby uruchamiany po wywołaniu z XCode, ale punkty przerwania byłyby ignorowane.

Następnie w Xcode, Przejdź do produktu -> Schemat Edytuj ... Sprawdź „używać zwyczaj katalogu roboczego” i ustawić na tym samym katalogu co plik wykonywalny.

Przerwy następnie zaczęły działać.

+0

Dziękuję. Próbowałem tego i to działa. Na początku tak nie było, ale to dlatego, że wykonywałem kompilację bez debugowania, kiedy zmieniłem ją na plik wykonywalny debugowania, wszystko zaczęło działać. Naprawdę cieszę się, że mogę to teraz zrobić, ponieważ musiałem utrzymywać dwie wersje, jedną w Xcode i jedną na zewnątrz, która nie była idealna. – jdswain

1

W "Nawigatorze projektu" (ikona folderu plików tuż pod przyciskiem "Uruchom"), kliknij prawym przyciskiem myszy i wybierz "Dodaj pliki do Twój projekt". Przejdź do folderu najwyższego poziomu, w którym normalnie uruchomisz zewnętrzną kompilację i kliknij przycisk Dodaj.

+0

Dodałem wszystkie pliki źródłowe. Początkowo robiłem to jako odniesienia do folderów (niebieskie foldery), ale próbowałem też dodawać grupy i pliki (żółte foldery), które nie działały. W normalnym projekcie należy również zaznaczyć pole "Docelowe członkostwo", ale jest to wyłączone w projekcie Kompilacja zewnętrzna. – jdswain

4
  1. Upewnij się, że -g jest zawarte w opcjach kompilatora w pliku Makefile.
  2. Ustaw niestandardowy katalog roboczy na schemacie, ustaw plik wykonywalny, jeśli nie został jeszcze ustawiony.
  3. Upewnij się, że projekt nie wciąga dylibs, które nie zostały skompilowane z -g. Możesz potrzebować kroku kompilacji, aby uruchomić make install, jeśli projekt zbuduje dylibs, a także główny cel.
  4. Upewnij się, że nie jest wywoływany "pasek". Istnieją vary środowiskowe, które ustawiają xcode, które pozwalają zachować działający plik makefile, gdy jest używany poza xcode.

prostu miał ten problem i to działało (Xcode 4.6) (got debugowanie źródłowy i punkty przerwania pracy)