Spis treści

MorphOS SDK

Instalacja

Oficjalny pakiet SDK (Software Developer Kit) MorphOS-a zawiera komplet narzędzi niezbędnych do tworzenia programów dla tego systemu. Znajdują się w nim następujące elementy:

Pierwszym krokiem instalacji jest pobranie archiwum SDK z portalu morphos.net, lub poprzez ten bezpośredni odnośnik. SDK jest udostępnione jako archiwum LhA, które należy samodzielnie rozpakować przed instalacją. Najłatwiej można to zrobić, otwierając menu kontekstowe dla pliku archiwum w oknie Ambienta i wybierając Rozpakuj. Przy rozpakowywaniu archiwum jest tworzony katalog morphossdk zawierający program instalacyjny i duży plik o nzawie sdk.pack. Rozpoczynamy instalację uruchamiając Installera. Jedyna decyzja, jaką trzeba podjąć w czasie instalacji, to wybór katalogu docelowego. Potem podziwiamy już tylko pasek postępu...

Po instalacji może się okazać niezbędne zrestartowanie systemu w celu aktualizacji ścieżek i przypisań wolumenów.

W powyższym wykazie brakuje edytora prorgamisty. Taki zaawansowany edytor, zwany Scribble jest od wersji 3.1 MorphOS-a dołączony do systemu. Scribble oparty jest o znakomity komponent Scintilla. Instalacja SDK wzbogaca go o funkcję dynamicznego przeglądania kodu, podpowiedzi argumentów funkcji i elementów struktur, szybki dostęp do dokumentacji API systemu itd.

Wybór kompilatora

Jak wspomniano wyżej, w SDK znajdują się dwa kompilatory GCC: stary, ale sprawdzony 2.95.3 oraz w miarę nowy 4.4.5. Do szybkiego przełączania się między nimi służy program GCCSelect, znajdujący się po instalacji w głównym katalogu SDK. Używa się go w następujący sposób:

GCCSelect 2.95.3
lub
GCCSelect 4.4.5

Program zmienia dowiązania symboliczne do kompilatora i programów narzędziowych tak, aby wskazywały na wybraną wersję. Dzięki temu kompilator zawsze wywołuje się poleceniem gcc albo g++, niezależnie od aktualnie wybranej wersji.

Którą wersję wybrać? To zależy od kompilowanego kodu i innych warunków. Oto kilka wskazówek:

Generalnie zalecam używanie GCC 4 i przełączanie się na 2.95.3 tylko, gdy jest to niezbędne.

Aktualnie aktywną wersję kompilatora można sprawdzić opcją −v, która wyświetla wersję i opcje ustawione przy budowaniu kompilarora:

gcc -v

Ostatnia linia wyników tej komendy zawiera wersję GCC.

Standardowe biblioteki C i C++

Biblioteki standardowe są częścią specyfikacji języka C i C++. Zawierają przede wszystkim funkcje wejścia/wyjścia dla plików i konsoli tekstowej, funkcje matematyczne i operacje na łańcuchach tekstowych. Biblioteka C++ zawiera również zestaw podstawowych klas – kontenerów danych.

Programy w systemie MorphOS mogą używać tych bibliotek na dwa sposoby. Pierwszym, domyślnym sposobem jest użycie biblioteki współdzielonej ixemul.library. Jak sugeruje nazwa, biblioteka ta próbuje zasymulować programowi środowisko systemu uniksowego. Oprócz biblioteki standardowej oznacza to implementację znacznej części standardu POSIX i wiele innych powszechnie używanych funkcji. Biblioteka ixemul.library jest zwykle używana do portowania większych projektów z Unixa/Linuxa, jest na przykład używana przez sam port GCC i jego programy narzędziowe.

Drugim sposobem dostarczenia programowi bibliotek standardowych jest użycie libnixa (skrót od lib no ixemul). W przeciwieństwie do ixemul.library, libnix jest biblioteką linkowaną statycznie z aplikacją. To zalecany sposób dołączenia biblioteki standardowej do programów pisanych od podstaw dla MorphOS-a (a także portów, o ile to możliwe). Linkowanie z libnixem uaktywnia się podając kompilatorowi i linkerowi opcję −noixemul. libnix zawiera w sobie kompletne biblioteki standardowe C i C++, ale jego implementacja POSIX-a jest mniej kompletna.

Jeszcze jedną możliwością jest całkowita rezygnacja z użycia bibliotek standardowych. Na pierwszy rzut oka to szalony pomysł, ale natywne API systemu posiada kompletną obsługę wejścia/wyjścia do plików, konsoli i innych obiektów DOS-a, jak również wiele funkcji do obróbki łańcuchów tekstowych, funkcji matematycznych itp. Bezpośrednie użycie natywnego API systemu czyni program mniejszym i szybszym. Z drugiej strony kod używający natywnego API nie jest bezpośrednio przenośny na systemy operacyjne inne niż amigowe/amigopodobne. Opcja kompilatora −nostdlib powoduje pominięcie bibliotek standardowych przy kompilacji i linkowaniu programu. Trzeba również zauważyć, że w tym przypadku wymagane jest napisanie własnego kodu startowego.