IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 2. diel - Céčko a Linux - Makefile

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Neaktivní uživatel:25.2.2015 13:48

Jeden tip. Pokud by jste měli složku dep a spustili by jste make dep, make se nebude chovat normálně. Jako řešení se nabízí přidat do Makefile sekci PHONY

.PHONY: dep
Odpovedať
25.2.2015 13:48
Neaktivní uživatelský účet
Avatar
David Novák
Tvůrce
Avatar
Odpovedá na Neaktivní uživatel
David Novák:25.2.2015 13:52

To a ještě několik dalších věcí plus Makefile tak, jak ho používám, chci někdy do budoucna přidat do samotného článku jako hotový SW.. ;)

Ale díky za zmínění - třeba to někdo využije už teď :)

Odpovedať
25.2.2015 13:52
Chyba je mezi klávesnicí a židlí.
Avatar
paja
Člen
Avatar
paja:24.6.2015 9:03

Skvele popsany popsany postup ;) Diky

 
Odpovedať
24.6.2015 9:03
Avatar
Patrik Pastor:11.9.2019 18:28

Ovsem kdyz dam: make all nebo jenom make - vyhodi mi to hlasku

make: Nothing to be done for 'all'

Tak nevim - ale jak si popisova minule tak v zavislotech je $(name) - coz je dalsi zavislost (zaverecne slinkovni), tak by se melo prece vykonat - cili je to takove udelej vse (podle nazvu). Ale zase to nema zadny prikaz, pouze zavislosti, mozna proto to hlasi 'nothing to be done'. Kazdopadne jsem to musel smazat, a provest ciste 'make' a potom to slo. Jak mam tady zavest pravidlo 'all' aby fungovalo?

PS: rad bych kdybys dovysvetlil, jak funguje $<, $@ - respektive jak se vygeneruje NAZEV zdrojoveho a ciloveho souboru (napsal jsi to co je, ale ne jak to funguje). Dik

Editované 11.9.2019 18:30
 
Odpovedať
11.9.2019 18:28
Avatar
David Novák
Tvůrce
Avatar
Odpovedá na Patrik Pastor
David Novák:13.10.2019 11:23

A udělal jsi předtím nějakou změnu v některém ze zdrojových souborů? Make si kontroluje, jestli je čas změny souborů mladší, než čas vytvoření výstupní binárky. 'make' a 'make all' jsou v tomto Makefile stejné příkazy.

$@ jednoduše vezme název generovaného souboru (tj. název pravidla: %.o - za procento jsou postupně dosazeny všechny hodnoty OBJFILES)
$< vezme první požadovaný soubor tj. to, co je za dvojtečkou (%.c)

Detaily můžeš najít v make manuálu: https://www.gnu.org/…riables.html#…

Odpovedať
13.10.2019 11:23
Chyba je mezi klávesnicí a židlí.
Avatar
Jozef Vendel
Člen
Avatar
Jozef Vendel:10.2.2021 11:48

Dobry den. Chcem sa opytat, ci je rozdiel v pisani suboru Makefile medzi os Windows a Linux.
Dakujem

 
Odpovedať
10.2.2021 11:48
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!