Każdy szanujący się programista ma jakiś swój zestaw przykładów czy zestawów ćwiczeń lub innych plików do szybkiego testowania tworzonego kodu. Osobiście mam utworzone katalogi dla jedno-plikowych programików. Dla przykładu w katalogu Exer_C trzymam pliki z kodem źródłowych w charakterze zestawu ćwiczeń lub co ważniejsze przykłady trzymam w katalogu Samples_C – końcówka to oczywiście określa typ języka w tym wypadku ANSI C. O ile w przypadku pracy z edytorem tekstu typu Sublime Text czy Vim nie ma problemu z kompilacją czy uruchamianiem pojedyńczych plików to przy projektach w IDE sprawa nie wygłąda już tak prosto. Oczywiście tworzenie projektu dla każdego pojedyńczego pliku jest wyjątkowo nieefetykwne a możliwości IDE są deleko bardziej rozwinięte od chociażby najbardziej rozbudowanego edytora ( no może poza Vim 😉 ) Poniżej przedstawię jak rozwiązać problem z konfiguracją projektu obejmującego zestaw pojedyńczych plików źródłowych. Tak aby w miarę łatwo można było na nich pracować wykonując kompilację, debugowanie i uruchomianie pojedyńczych plików.
Dla przykładu w środowisku Eclipse C/C++ mamy możliwość pełnej kontroli nad kompilowaniem, debugowanie i uruchomianiem pojedyńczych plików w projekcie. Z XCode sprawa wygląda bardziej skomplikowanie, gdyż sam w sobie nie daje możliwości pracy z pojedyńczymi plikami w takim zakresie jak we wspomnianym Eclipse C/C++. Nie mniej jednak i w XCode po odpowiedniej konfiguracji możemy w miarę sensownie pracować z tego typu projektami.
Nowy Projekt w XCode
Tworzymy nowy projekt:
File | Project... | Command Line Tool
Po utworzeniu projektu, dodajemy do niego katalog z naszymi pojedyńczymi plikami źródłowymi w zasadzie będzie to link symboliczny, także nie będzie tworzona żadna kopia plików w odrębnym katalogu.
Kliklamy po lewej stronie w nazwę naszego projektu i klikając prawym klawiszem myszy przechodzimy do menu kontekstowego:
Po czym tworzymy referencję do naszego katalogu z plikami źródłowymi:
Add files to... | Create folder references
Wybieramy katalog z naszymi plikami źródłowymi w ten sposób zostanie utworzona referencja / link symboliczny do naszego źródła. Przy kasowaniu należy uważać, aby nie skasować katalogu razem z zawartością. Jeśli chcemy pozbyć się katalogu ze źródłami z samego projektu usuwamy tylko jego referencję.
Teraz mamy w naszym projekcie potrzebne nam jedno-plikowe źródła. Niestety XCode nie umożliwia kompilowania pojedyńczego pliku tak aby został dodany do katalogu Products z którego moglibyśmy dokonywać debugowania czy uruchomienia wersji release.
Tak więc musimy posłużyć się konsolą przechodząc do naszego katalogu ze źródłami, tam będziemy kompilować nasze pliki źródłowe. Należy pamiętać aby nazwa pliku wynikowego była taka sama by mieć dostęp do debugowania i uruchamiania programów z poziomu Xcode bez zbędnej każdorazowej zmiany konfiguracji.
Kompilacja z konsoli w celu debugowania w GUI XCode:
clang -g /Samples_C/delta.c
Aby uruchamiać/debugować programy z poziomu XCode należy wskazać naszemu IDE lokalizację skompilowanego pliku. Klikamy w nazwę projektu, tym razem na górnej belce przy przyciskach RUN i STOP i wybieramy Edit Scheme
Należy podać ścieżkę do pliki wykonywalnego, najlepiej jak będzie domyślna nazwa pliku tworzonego przez kompilator ./a.out w lokalizacji naszego katalogu z jedno-plikowymi kodami źródłowymi.
Uruchamianie programu czy przeprowadzenie procesu debugowania ( wcześniejsa kompilacja w konsoli z parametregm -g ) wykonujemy poprzez wybranie odpowiedniej opcji z głównego menu:
Product | Perform Action | Run without Building
UWAGA: Nie wciskamy domyślnego przycisku do uruchamiania skompilowanego programu, gdyż wtedy XCode automatycznie skompiluje plik main.c a nie wcześniej skompilowany przez nas w konsoli program.
Tak jak wcześniej wspomniałem, każdy plik z kodem źródłowym kompilujemy z konsoli – to jedyna niedogodność. Ale dzięki powyższej konfiguracji XCode, możemy w dość wygodny sposób testować/debugować/uruchamiać nasze programy kompilowane z jedno-plikowych plików źródłowych.