Borland C++ Compiler/MAKE: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
m naw.
lit.
Linia 1:
== Wprowadzenie ==
MAKE pozwala zautomatyzować proces budowania projektu programistycznego poprzez stawianie odpowiednich [[Borland C++ Compiler:MAKE#Zasady ogólne i szczegółowe|zasad]] dla plików źródłowych i wywoływaniu [[Borland C++ Compiler:MAKE#Komendy systemowe|komend systemowych]]. Poza tym program ten znacznie przyspiesza proces budowy programu, ponieważ wykonuje opercjeoperacje tylko na plikach, które zostały zmodyfikowane od czasu ostatniej kompilacji (uruchomienia MAKE), ma to szczególnie duże znaczenie w przypadku dużych projektów.
== Plik Makefile ==
Najważniejszy plik dla MAKE. W nim znajdują się wszelkie [[Borland C++ Compiler:MAKE#Zasady ogólne i szczegółowe|zasady]] operacji na źródłach, [[Borland C++ Compiler:MAKE#Komendy systemowe|wywołania programów]], [[Borland C++ Compiler:MAKE#zmienne|zmienne]] i [[Borland C++ Compiler:MAKE#Dyrektywy|instrukcje]] odpowiedzialne za zarządzanie budową projektu. Utworzyć go można w najprostszym edytorze tekstowym (np. w systemowym Notatniku). Należy pamiętać jednak, aby plik zapisać jako <tt>[[w:makefile|makefile]].mak</tt> lub <tt>makefile</tt> (bez rozszerzenia). To, którą opcje wybierzesz jest już obojętne.
Linia 66:
Czarna magia? W następnych podrozdziałach będzie mowa o najważniejsze elementach składni pliku makefile.
 
Aby to co pisze nie było tylko czystą teorią wymyśliłem projekt ''HelloProject'', którego makefile będziemy rozwijać w miaremiarę postępów w nauce. Jak zorganizować sobie miejsce pracy nad tym projektem? Należy utworzyć nowy katalog z nazwą projektu: <tt>C:\Hello\</tt> Następnie trzeba tam skopiować wszystkie jego pliki źródłowe:
* <tt>Hello.cpp</tt>
* <tt>klasa.cpp</tt>
Linia 76:
 
== Komentarze ==
W makefile'u tak jak w C++, również możesz używać komentarzy jednoliniowychjedno liniowych. Wszystko to co znajdzie się w jednej linii po symbolu hash'a: '''<tt>#</tt>''' MAKE ignoruje.
 
# to jest komentarz
Linia 102:
gdzie:
 
; <tT><lokalizacja1></tt> : lokalizacja/e plików zależnych (źródłowych) (w przypadku gdy jest ich więcej jako seperatoraseparatora używamy średnika:';')
; <tt><roz1></tt> : rozszerzenie plików źródłowych
; <tt><lokalizacja2></tt> : lokalizacja/e na dysku plików wynikowych (docelowych) operacji (gdzie mają się one znaleźć) oddzielone jedna od drugiej średnikiem:';'
Linia 121:
 
; <tt><wynik(i)></tt> : nazwa pliku/ów wynikowego/ych, który ma być wygenerowany
; <tt><lokalizacja></tt> : lokalizacja/e plików źródłowych odzieloneoddzielone od siebie średnikami:';'
; <tt><src></tt> : plik(i) źródłowy/e
 
Linia 171:
implib mylib +lib3.obj +lib4.obj
 
Najpierw do biblioteki statycznej mylib.lib dodawane są <tt>obj1.obj</tt> i <tt>obj2.obj</tt>, następnie w drugiej zasadzie do tej samej biblioteki odajemyoddajemy: <tt>obj3.obj</tt> oraz <tt>obj4.obj</tt>.
 
=== Zasada "bez zasad" :-)===
Linia 223:
<nazwa> = [<łańcuch_znaków>]
 
Zwroć uwagę, że przypisywany łańcuch nie jest ujęty w "" tak jak to jest w C/C++, wszystko to co znajdzie się za znakiem równości: <tt>=</tt> w jednej linilinii zostanie przypisane do zmiennej <nazwa>. np.:
 
SRC = Hello.cpp klasa.cpp
Linia 265:
|-
| <tt>$<</tt>
| plik źródłowy+rozszerzenie z lokazlizacjąlokalizacją
| plik wynikowy+rozszerzenie z lokazlizacjąlokalizacją
|-
| <tt>$:</tt>