Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

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ť
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ť
Chyba je mezi klávesnicí a židlí.
Avatar
Pavel Kratochvíl :24.6.2015 9:03

Skvele popsany popsany postup ;) Diky

Odpovedať
Ctrl+C, Ctrl+V života, ale s vlastními úpravami ...
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é
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ť
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

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.

Zobrazené 6 správy z 6.