Portál AbcLinuxu, 8. listopadu 2025 10:15
Vytvořil jsem si soubor makefile pro svůj projekt a potřeboval bych, aby mi po překladu odstranil všechny soubory s příponou .o . Našel jsem si, že má fungovat toto :
clean: -tab- -rm -f *.oJenže mi je to nesmaže. Respektive clean se vůbec neprovede. Leda když zadám make clean. Kde může být problém ? Dík
make bez argumentu, vytvoří se první target. Pokud mermomocí po slinkování chcete odstranit objecty (předpokládám, že po překladu to udělat nechcete - bez ohledu na to, že to tvrdíte), tak ten příkaz pro smazání přidejte k příslušnému targetu. Ale pak mi není moc jasné, proč vlastně používáte makefile… :-)
make a nenapíše si na to jednoduchý skript. Žiju totiž v přesvědčení, že make byl vymyšlen právě proto, aby se prováděly právě jen ty příkazy, které jsou potřeba…
Další možnost je dát ty dva targety do prerekvizit targetu, který se bude volat "zvenku", pak to celé vyřídí jeden proces make:
foo: real_foo clean
real_foo:
...
clean:
rm -f *.o
.PHONY: foo real_foo clean
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.