2010-10-12 11 views
7

widzę w Linuksie te rzeczy, ale co to jest ?:Jakie są makefile - make install

./configure 
make 
make install 

itp itd

+1

Anotther pytanie, dlaczego programista nie spełnia, widzę, że wiele oprogramowania sprawia, że ​​sam się spełniam? – Snoob

+1

Linux działa na wielu różnych platformach (różnych procesorach, architekturach, sprzęcie, wersjach systemu operacyjnego/jądra itp.) - niepraktyczne byłoby dostarczanie wstępnie skompilowanych plików binarnych dla niezliczonych możliwych konfiguracji, które istnieją. –

+0

Istnieje wiele wstępnie skompilowanych plików binarnych. Zwykle kończą się na .deb lub .rpm. Jeśli używasz dystrybucji takiej jak Ubuntu, możesz pobrać większość oprogramowania skompilowanego z repozytorium. –

Odpowiedz

8

make jest częścią systemu budowania powszechnie stosowane w systemach typu Unix - binutils.

Sprawdza pliki make, które przechowują informacje o konfiguracji i budują cele.

Konkretnie -

  • ./configure - jest to skrypt, który tworzy środowisko dla budowy
  • marki - zwraca make z celem domyślne kompilacji. Zwykle tworzy aplikację.
  • make install - wywołania make z celem kompilacji install. Zwykle instaluje aplikację.
+0

Dlaczego downstream? –

+0

@Paul Tomlin - o czym ty mówisz? – Oded

+0

Och, myślę, że było odwrotnie. Miałeś -1, gdy zadałem to pytanie. –

5

configure sprawdza, czy posiadasz wszystkie wymagania wstępne/zależności niezbędne do zbudowania oprogramowania.

make wykonuje rzeczywistą kompilację.

make install instaluje oprogramowanie we właściwej lokalizacji.

3

Make dba o uruchomienie (czasami bardzo złożonego) zestawu instrukcji i poleceń potrzebnych do zbudowania kontroli źródła w skompilowanym pliku wykonywalnym lub bibliotece.

make (software)

make to narzędzie, które automatycznie tworzy programy wykonywalne i biblioteki z kodem źródłowym

4

Jest to w zasadzie system budowania.

./configure sprawdza, czy masz wszystkie wymagane zależności i tworzy plik Makefile.
make kompiluje oprogramowanie zgodnie z regułami pliku Makefile.
make install przenosi oprogramowanie do właściwej lokalizacji w systemie plików.

+2

To nie jest "w zasadzie" system kompilacji. To jest system budowy. –

11

./configure to program, który analizuje konfigurację systemu i buduje niektóre zależności systemu dla twojego programu. make to program, który patrzy na twój Makefile (który prawdopodobnie został zbudowany przez configure) i używa reguł tam do zbudowania twojego programu. Model Makefile może mieć wiele "obiektów docelowych", które są zestawami reguł do robienia różnych rzeczy - domyślnie zwykle wystarczy skompilować i połączyć program. Kiedy mówisz make bez argumentów, uruchamia domyślny cel. Kiedy mówisz make install, używasz celu install, który zwykle instaluje pliki binarne lub biblioteki zbudowane przez domyślny cel w ich ostatecznych lokalizacjach. clean to kolejny popularny plik Makefile, który usuwa wszystkie wygenerowane pliki, takie jak pliki obiektów pośrednich.

0

Istnieje również make clean

Oto dobre referencje: http://makepp.sourceforge.net/1.19/makepp_tutorial.html

+0

nigdzie w przywołanym dokumencie nie wspomniano "/ clean". Czy mówisz, że "/ clean" jest poleceniem lub celem make? Zrobione dosłownie, to nie jest ani. Podczas udzielania odpowiedzi technicznych musisz być dokładny. –

+0

Przepraszam, że nie jestem bardziej dokładny. Oto przykład prostego pliku make, który przesłałem do projektu szkolnego, który musiałem zrobić (a także trochę kodu, który można zignorować) ... możesz znaleźć przykład w pliku "makefile". Ponieważ stworzyłem plik Makefile, możesz użyć "/ clean", który usunie plik obiektowy wygenerowany przez "/ make". To wymagałoby aktualizacji w przypadku bardziej skomplikowanej kompilacji, która wiąże się z łączeniem kodu obiektowego z aplikacją, ale ilustruje podstawową koncepcję tego, o czym mówiłem. http://www.download.bigsistechnologies.com/csc22001p1_burke.tar.gz –

+0

Co jest z wiodącymi ukośnikami na '/ make' i'/clean' ?? – reinierpost

1

'./configure' jest skryptem powłoki, który jest przenośny w wielu systemach Unix (Linux, Solaris, itd.). "./configure" robi kilka rzeczy: testuj środowisko kompilacji, napraw problemy z przenośnością, sprawdź inne opcjonalne oprogramowanie, sprawdź, gdzie chcesz zainstalować pakiet oprogramowania itp. Możesz dowiedzieć się, jakie opcje można skonfigurować przez "./configure --help". Po prostu wywołanie "./configure" po prostu skonfiguruje pakiet z tym, co uważa za domyślne. Głównym plikiem wyjściowym z działania "./configure" jest zwykle plik o nazwie "Makefile", który jest połączoną instrukcją kompilacji/instalacji/deinstalacji pakietu oprogramowania.

"make" używa "Makefile" do zbudowania domyślnego celu, który jest zwykle całym zbiorem rzeczy, które trzeba zbudować.

"make install" używa "Makefile" do zbudowania celu "install", który instaluje oprogramowanie.

1

Znalazłem ten niesamowity artykuł (Understanding software Installation configure, make, make install), który szczegółowo opisuje konfigurację, tworzenie i instalację. Nie jest zbyt płytka i ani zbyt głęboka, ale wystarczająca, aby wygodnie korzystać z instalacji Linuksa. http://www.codecoffee.com/tipsforlinux/articles/27.html