Home  |  Aktualności  |  e-Komunikacja  |  WWW  |  Bezpieczeństwo  |  Linux  |  Programy  |  GSM/UMTS  |  Rozrywka

Kompilacja dla początkujących

Linux kompilacja krok po kroku

Najczęściej spotykane programy na system Linuks są tak zwane binaria- czy zestaw plików do kompilacji.  Aby cieszyć się z takiego programu- trzeba go skompilować. Jest to jeden z najcięższych problemów dla początkujących użytkowników Równie trudnym momentem dla początkujących programistów na Linuksie jest - kompilacja napisanego programu.

Kompilacja Linux

 
Wiele osób myśli, że jest to bardzo trudne i tylko Orły to potrafią. Jesteście w błędzie! Kompilacja napisanego programu jest banalnie prosta i szybka. Zapraszam do zapoznania się z tym artykółem. Każdy krok kompilacji naszego programu jest szczegółowo opisany

1. Pierwszym krokiem jest samo ściągnięcie źródeł.

Najwięcej ich można znaleźć na sourceforge.net. Kiedy już mamy plik ze źródłami a najczęściej ma on postać nazwa_programu.tar.gz skopjujmy go do folderu /usr/src. Być może do zapisu w tym katalogu będą nam potrzebne prawa roota. W tym miejscu najlepiej jest przechowywać żródła programów.
Posiadany przez nas pliki jest archiwum, które przechowuje źródła programu. Należy je rozpakować poleceniem: (możemy również użyć graficznych programów jak ark czy file-roller

tar -xvzf nazwa_programu.tar.gz



Opis przełączników dla tar:
x - oznacza, żeby dany plik został rozpakowany
v - pokaże nam listę plików i szczegóły
z - filtrowanie pakietów przez gzip
f - oznacza, że plik archiwum jest plikiem lokalnym

2. W wyniku powyższych operacji otrzymaliśmy katalog, w którym znajdują się źródła programu, licencjie oraz pliki informujące jak dany program skompilować i zainstalować. Najczęściej jest to plik INSTALL lub README.


Typowa kompilacja rozpoczyna się od wydania polecenia w katalogu ze źródłami:


./configure

Jest to prosty skrypt, który sprawdza nasz system pod względem, czy posiada on potrzebne programy lub biblioteki do skompilowania naszych źródeł. Wygląda on mniej więcej tak:

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no


Bardzo często zdarza się, że configure zatrzyma się w pewnym momencie i pokarze listę błędów, które uniemożliwiają nam skompilowanie programu:

checking for libgnutls-config... no
checking for libgnutls - version >= 1.0.0... no
*** The libgnutls-config script installed by LIBGNUTLS could not be found
*** If LIBGNUTLS was installed in PREFIX, make sure PREFIX/bin is in
*** your path, or set the LIBGNUTLS_CONFIG environment variable to the
*** full path to libgnutls-config.
configure: WARNING:
***
*** libgnutls was not found. You may want to get it from
*** ftp://ftp.gnutls.org/pub/gnutls/

Jak widać powyżej brakuje nam biblioteki libgnutls w wersji większej lub równej 1.0.0. Configure również pokazało, gdzie należy szukać podanych plików. Po zainstalowaniu biblioteki odpalamy jeszcze raz configure i czytamy rezultaty. Być może teraz znajdzie brak innych plików, więc będzie trzeba je doinstalować. Jeśli wszystko pójdzie dobrze powinniśmy otrzymać komunikat w stylu:

Good - your configure finished. Start make now



3. Kompilacja.

Sama kompilacja ogranicza się do wydania polecenia

make


Rezultatem jego działania jest szereg linijek niezrozumiałego tekstu:

if gcc -DHAVE_CONFIG_H -I. -I. -I.. -DSYSCONFDIR=\"/usr/local/etc\" -DDATADIR=\"/usr/local/share/ekg2\" -DPLUGINDIR=\"/usr/local/lib/ekg2/plugins\" -I../libltdl    -g -O2 -Wall -MT protocol.o -MD -MP -MF ".deps/protocol.Tpo" \
  -c -o protocol.o `test -f 'protocol.c' || echo './'`protocol.c; \
then mv -f ".deps/protocol.Tpo" ".deps/protocol.Po"; \
else rm -f ".deps/protocol.Tpo"; exit 1; \
fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -DSYSCONFDIR=\"/usr/local/etc\" -DDATADIR=\"/usr/local/share/ekg2\" -DPLUGINDIR=\"/usr/local/lib/ekg2/plugins\" -I../libltdl    -g -O2 -Wall -MT sessions.o -MD -MP -MF ".deps/sessions.Tpo" \
  -c -o sessions.o `test -f 'sessions.c' || echo './'`sessions.c; \
then mv -f ".deps/sessions.Tpo" ".deps/sessions.Po"; \
else rm -f ".deps/sessions.Tpo"; exit 1; \


Z reguły kompilacja kończy się następująco:

make[2]: Nie nic do roboty w `all-am'.
make[2]: Leaving directory `/usr/src/ekg2-20050812'
make[1]: Leaving directory `/usr/src/ekg2-20050812'

Nasz program jest skompilowany. Czas go zainstalować.

4. Instalacja skompilowanych źródeł musi odbywać się z poziomu root dlatego w konsoli wydajemy polecenie su i podajemy hasło administratora. Teraz możemy wydać polecenie:

make install


Teraz system kopiuje odpowiednie pliki binarne do katalogów systemu. Po całej tej operacji wystarczy w konsoli napisać nazwę programu i się on uruchomi.

5. Jeśli program się nam znudzi i chcemy go usunąć to wystarczy wejść do katalogu ze źródłem programu (domyślnie /usr/src/nazwa_programu) i jako root wydajemy polecenie

make uninstall


To jest jedna z przyczyn, dla których warto trzymać źródła w jednym miejscu.

6. Uruchamianie naszego programu

Po każdej kompilacji miło uruchomić swój program :) Aby właśnie spełnić to marzenie wpisujemy:

./nazwa_programu

W tym momencie otwiera się nasz upragniony program :)



---
Michał &  thecamels.org



Tagi

Bezpieczeństwo w Windows Vista Jak włączyć HSDPA? Legalizacja, Windows XP Professional, Vista Nowy wymiar Komunikacji,... Ochrona / Anty Spyware Ochrona / Firewall'e Programy Pocztowe Rynek telefoniczny - trendy... Skrypty PHP - CMS, Blog, Galerie Słowniki - Tłumaczenia - Translatory TOP LISTA - Free ANTYWIRUSÓW Wirusy Top Ranking - Zestawienie Wyniki wyszukiwania, onet, google, Wyszukiwarki, Wyszukiwarka, Statystyki, Frazy, Test, Ranking, e-mail