widzę w Linuksie te rzeczy, ale co to jest ?:Jakie są makefile - make install
./configure
make
make install
itp itd
widzę w Linuksie te rzeczy, ale co to jest ?:Jakie są makefile - make install
./configure
make
make install
itp itd
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 -
make
z celem domyślne kompilacji. Zwykle tworzy aplikację.make
z celem kompilacji install
. Zwykle instaluje aplikację.Dlaczego downstream? –
@Paul Tomlin - o czym ty mówisz? – Oded
Och, myślę, że było odwrotnie. Miałeś -1, gdy zadałem to pytanie. –
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.
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 to narzędzie, które automatycznie tworzy programy wykonywalne i biblioteki z kodem źródłowym
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.
To nie jest "w zasadzie" system kompilacji. To jest system budowy. –
./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.
Istnieje również make clean
Oto dobre referencje: http://makepp.sourceforge.net/1.19/makepp_tutorial.html
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. –
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 –
Co jest z wiodącymi ukośnikami na '/ make' i'/clean' ?? – reinierpost
'./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.
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
Anotther pytanie, dlaczego programista nie spełnia, widzę, że wiele oprogramowania sprawia, że sam się spełniam? – Snoob
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ą. –
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. –