[ Pobierz całość w formacie PDF ]
to kompilacja powinna przebiec bez developer.gnome.org/doc/API/2.0/glib/ powinien pojawić się napis Hello
błędów, a jako wynik otrzymamy plik glib-cross-compiling.html. World!". Jeżeli teraz wydamy komen-
binarny sb-arm-hello. Po uruchomieniu Teraz, gdy w naszym środowisku dę file, to jej wynik powinien być iden-
komendy: mamy już zainstalowane biblioteki C oraz tyczny jak w poprzedniej wersji pro-
glib, możemy skompilować nowe "Hello gramu Hello World!". Jeśli wywołamy
file sb-arm-hello World", które będzie używało funkcji jeszcze komendę ldd, która pokazu-
print z biblioteki glib. Oto plik glib-hel- je wykorzystanie bibliotek, to będzie-
otrzymamy komunikat, który pokazuje, lo.c: my mogli zobaczyć, że zainstalowana
że znowu mamy w swoim ręku rzeczy- przed chwilą biblioteka glib jest rze-
wisty plik binarny ARM: # include czywiście używana (ldd sb-arm-glib-
# include hello):
sb-arm-hello: ELF 32-bit LSB executable, int main(void)
ARM, version 1 (ARM), for GNU/Linux { libglib-2.0.so.0 => /usr/local/lib/
2.0.0, dynamically linked g_printf("Hello World!\n"); libglib-2.0.so.0 (0x00000000)
(uses shared libs), not stripped return 0; libc.so.6 => /lib/libc.so.6 (0x00000000)
S
} libgcc_s.so.1 => /lib/libgcc_s.so.1
Ponieważ jesteśmy wewnątrz środowi- (0x00000000)
ska Scratchbox, to możemy uruchomić Scratchbox jest dostarczany z narzędziem /lib/ld-linux.so.2 =>
powstały program w emulatorze poprzez pkg-config, które jest używane w celu /lib/ld-linux.so.2 (0x00000000)
wpisanie: ./sb-arm-hello. W rezultacie wygodnego wyciągnięcia wszystkich
otrzymamy wynik w postaci napisu Hello ścieżek dostępu związanych z biblioteką W tej chwili możemy już tworzyć pliki
World!. glib. Domyślnie, glib instaluje się do /usr/ wykonywalne naszych programów i biblio-
local/ i do tego samego katalogu są także tek, a następnie przenosić je na różne
Przykład bardziej instalowane pliki konfiguracyjne pkg- urządzenia oparte o procesor ARM.
skomplikowany config. W poniższym przykładzie użyje- Scratchbox zawiera jeszcze wiele
Kolejny przykład będzie wymagał biblio- my pkg-config oraz tak ustawimy zmien- innych rozszerzeń i narzędzi, które
teki glib z rodziny GTK+. Najpierw ną środowiskową PKG_CONFIG_PATH, pomagają w tworzeniu oprogramowania,
musimy ściągnąć pakiet glib i skompi- że narzędzie znajdzie odpowiednie pliki np. dla Debiana ARM.
lować go dla środowiska docelowego za glib:
pomocą następujących komend: Podsumowanie
S
# export PKG_CONFIG_PATH=/usr/local/ Istnieje wiele ciekawych urządzeń, na
S
> wget ftp://ftp.gtk.org/pub/gtk/v2.2/ lib/pkgconfig/ których można zainstalować i urucha-
glib-2.2.3.tar.bz2 miać Linuksa. Uruchomienie czy skom-
> tar -xjvf glib-2.2.3.tar.bz2 Teraz możemy uruchomić pkg-config pilowanie naszych ulubionych progra-
> cd glib-2.2.3 list-all, co umożliwi nam obejrzenie mów na te urządzenia może być rzeczy-
> ./configure bibliotek zainstalowanych w systemie. wiście trudnym zadaniem. Dzięki odpo-
> make W tej chwili powinno to wyświetlić: wiednim narzędziom oraz z pomocą róż-
> make install nych artykułów z czasopism i ze stron
gmodule-2.0 GModule - Dynamic module internetowych można spowodować, że
Jak można zauważyć, jest to znacz- loader for GLib nie będzie to już tak skomplikowane.
nie bardziej złożony przykład. Użyli- glib-2.0 GLib - C Utility Library A już na pewno jest to bardzo interesują-
śmy skryptu configure, który kompi- gobject-2.0 GObject - GLib Type, Object, ca dziedzina do doświadczeń programi-
luje i uruchamia dużo różnych pro- Parameter and Signal Library stycznych.
gramów w celu wyciągnięcia różnych gthread-2.0 GThread - Thread support
danych o środowisku. Gdybyśmy użyli for GLib
kompilacji skrośnej poza Scratchbok-
W Internecie:
sem, wtedy skrypt configure nie ukoń- W celu skompilowania nowego "Hello
Strona domowa projektu Scratchbox:
czyłby prawidłowo działania, ponieważ World" będziemy potrzebowali następu-
http://www.scratchbox.org/
nie mógłby uruchomić programów do jącej komendy:
Strona domowa projektu QEMU:
kompilacji. Zerknięcie do pliku /tmp/
http://fabrice.bellard.free.fr/qemu/
S
cputransp_$USER.log pozwala na uzy- # gcc -Wall `pkg-config --cflags
Strona domowa projektu Handhelds:
S
skanie informacji o komendach, które --libs glib-2.0` -o sb-arm
http://www.handhelds.org/
były uruchamiane z emulatorem. Oczy- -glib-hello glib-hello.c
31
www.lpmagazine.org
[ Pobierz całość w formacie PDF ]