Makefile Flashcards

(25 cards)

1
Q

Wskaż w poniższym listingu wartość zmiennej automatycznej $@

fb1-5: fb1-5.l fb1-5.y
bison -d fb1-5.y
flex fb1-5.l
cc -o $@ fb1-5.tab.c lex.yy.c -lfl

A

fb1-5 <- cel jest wartością zmiennej automatycznej $@

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Z jakich sekcji zbudowany jest plik Makefile?

A

cel: warunki wstępne …
recepta …

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Jakiej klasy obiektami są warunki wstępne?

A

Są to pliki wejsciowe do reguł, muszą być zbudowane przez make lub istnieć

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Czy przed każdą receptą należy postawić znak tabulatora?

A

Tak, chociaż dozwolone jest ustawienie zmiennej .RECIPEPREFIX na dowolny znak

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Czy wymagania wstępne są wymagane do poprawnego działania reguły?

A

Nie są wymagane

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Co zrobi make jeżeli celem jest plik a zmieni się któryś z warunków wstępnych?

A

Przekompiluje lub zlinkuje ponownie ten cel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Która reguła zostanie wybrana jako pierwsza jeżeli make nie przyjmie parametrów?

A

Pierwsza reguła z listy, włączając wszystkie pliki/reguły wejściowe

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Czy akcje powinny zawierać odwałania do innych akcji?

A

Nie powinny

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Czy akcje powinny być używane w warunkach wstępnych w innych regułach?

A

Nie powinny, np. usuwanie plików powinno być wykonane, jako , że inne cele których warunkami wstępnymi są pliki mogą działać błędnie.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Czym rózni się reguła akcji od reguły która buduje pliki?

A

W akcji nie podaje się warunków wstępych

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Jak z angielskiego nazywa się reguły, które nie odwołują się do plików - czyli akcje?

A

Phony targets

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Czym są zmienne w plikach makefile?

A

Są to napisy zdefiniowane raz, a następnie podstawiane wielokrotnie w regułach.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

W jakim celu stosować zmienne?

A

W celu uniknięcia błędów związanych z powieleniami.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

W jaki sposób zdefiniować zmienną?

A

zmienna = napis definiujący zmienną

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Do czego używany jest przełącznik -c w komendzie cc?

A

Do kompilacji ale pominięcia fazy linkowania.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Jakie rozszerzenie przyjmują zasembolowane lub skompilowane pliki?

17
Q

Do czego używany jest przełącznik -S w komendzie cc?

A

Do kompilacji do kodu maszynowego.

18
Q

Jakie rozszerzenie przyjmują skompilowane pawidłowo pliki z opcją -S?

19
Q

Do jakiego kompilatora zlinkowane jest polecenie cc?

A

Do GNU C Compiler, czyli gcc

20
Q

W jaki sposób można użyć zmiennej?

A

Umieszczając ja pomiędzy napisem “${“ a znakiem “}”, np. ${obiekty}

21
Q

Rozwiń domniemaną regułe dla plików .o -> main.o : defs.h

A

cc -c main.c defs.h -o main.o

22
Q

Czy można podać więcej niż jeden cel w regule?

A

Można, często przy akompaniamencie reguł domniemanych.

23
Q

Czy można grupować wpisy po wymaganiach wstępnych, a nie po celach?

A

Tak, np. kbd.o command.o files.o : command.h -> wykorzysta domniemaną regułę .o do kompilacji każdego celu osobno, tj.

kbd. o : command.h
command. o : command.h
files. o : command.h

A te domniemane reguły zostaną odpowiednio rozwinięte

24
Q

W jaki sposób zareaguje make na poniższą regułę

clean:
rm edit $(objects)

W momencie, kiedy plik clean istnieje w katalogu źródłowym?

A

Potraktuje ten cel jako próbę stworzenia pliku clean, a nie jak w zamierzeniu akcję

25
W jaki sposób definiować akcję, tak aby nie było problemów z fizycznymi plikami na systemie plików?
Jak poniżej ## Footnote .PHONY : clean clean : -rm edit $(objects)