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.
Podczas aktualizacji systemu z OS X Lion do Mavericks lub Yosemite napotkałem problem podczas debugowania w środowisku Eclipse C/C++. Pierwsza kwestia dotyczyła tego, że po aktualizacji nie miałem już GDB w systemie a po jego instalacji pojawił się problem z certyfikatami, np. komunikat: „Unable to find Mach task port for process” . Poniżej przedstawiam krok po kroku rozwiązanie owego problemu.
Język Objective C powstał w oparciu o rozwiązana stosowane w języku smalltalk i jest rozszerzeniem języka „klasycznego C”. Sam w sobie jest językiem w pełni obiektowym ( nawet najprostszy typ jest obiektem ), ale nie ogranicza się tylko do jednego paradygmatu programowaniu z uwagi na to iż jest rozszerzeniem języka C – można także korzystać z typów i instrukcji języka C. Podobna sytuacja była z C++ ( rozszerzenie języka C o paradygmat programowania obiektowego ). Tak więc jeżyk Objective C = ANSI C + Obiektowość w stylu SmallTalka 😉
Continue reading
Kompilacja z poziomu konsoli wygląda następująco:
cc -framework Foundation main.m -o app
Continue reading