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

Usunięta treść Dodana treść
Piotr (dyskusja | edycje)
Linia 116:
 
Przejdźmy teraz do analizy tych trzech linijek kodu. Pozwoli Ci to lepiej zrozumieć działanie zasad make'a. W tym przypadku zasada zezwala na operacje na plikach *.cpp tylko z katalogu <tT>c:\src</tt>, a ich wynik w magiczny sposób musi znaleźć się w <tt>c:\obj</tt>, oczywiście nie da się tego dokonać bez pomocy systemowego słowa kluczowego COPY albo użycia w parametrach wywołania kompilatora opcji -n. Jeśli nie określisz w zasadzie tych lokalizacji, to dozwolone będą operacje na wszystkich plikach na całym Twoim twardzielu. Określając w zasadzie lokalizacje plików źródłowych nie łudź się że zostanie to przekazane komendom które wywołujesz, dlatego podczas kompilacji zapisałem plik <tT>hello.cpp</tt> wraz jego z lokalizacją, oczywiście nie musiałbym tego robić, gdybyśmy odpalili MAKE z lokalizacji <tT>c:\src</tt>.
=== Zasady szczegółowe (''explicit rules'')===
Zasady szczegółowe określają z jakich plików źródłowych powstaje plik wynikowy. W tym przypadku musimy podać dokładne nazwy plików a nie jak to było w przypadku zasad ogólnych samego rozszerzenia plików. Spójrzmy na składnię:
 
Linia 174:
 
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 odajemy: <tt>obj3.obj</tt> oraz <tt>obj4.obj</tt>.
 
=== Zasada "bez zasad" :-)===
Jest jeszcze jedna zasada, którą odkryłem analizując makefile generowany przez program vide, co ciekawe help FCLT nic o niej nie pisze, zachowuje się jakby w ogóle nie istniała... no comment. Właściwie to nie wiem, czy można by nazywać to zasadą, bo nie określa żadnych praw dostępu do plików. Jej składnia jest miej więcej taka: