Portál AbcLinuxu, 4. května 2025 14:45

Dotaz: make - paralelizace

29.5.2015 22:28 diggit
make - paralelizace
Přečteno: 293×
Odpovědět | Admin
Příloha:

Ahoj, mám problém s mým Makefile. Nastavil jsem proměnou prostředí MAKEFLAGS="j5". Když zavolám make vše se zkompiluje a slinkuje do binárky jak má. Pokud ale zavolám make clean all aby se vše vyčistilo a rebuildnulo, paralelizace to pokazí. Začne se provádět clean, mezitím se přeskočí kompilace zdrojáků protože jejich .o soubory ještě clean nestihl smazat. Jakmile však dojde na linkování tak už není co linkovat protože clean dodělal svojí práci a všechny .o soubory smazal a make skončí chybou.

Jde nějak v Makefile vynutit aby se společně s clean nespouštělo nic dalšího?

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.5.2015 23:11 diggit
Rozbalit Rozbalit vše Re: make - paralelizace
Odpovědět | | Sbalit | Link | Blokovat | Admin
Teď jsem našel podobnej problém. Šlo by v hlavním Makefile vynutit sériové zpracovávání pomocí .NOTPARALLEL : a pak z něj volat další Makefile již s paralelním zpracováváním, kde by bylo vše kolem kompilace. Jen jsem myslel, jestli není nějaký elegantnější způsob...
30.5.2015 00:13 chrono
Rozbalit Rozbalit vše Re: make - paralelizace
Dá sa použiť niečo takéto Parallel makefile require depency ordering, netuším ale, či to je elegantnejšie.
30.5.2015 07:29 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: make - paralelizace
Odpovědět | | Sbalit | Link | Blokovat | Admin
Řekl bych, že make neřeší mizení cílů. Určitě ne z paralelně běžících úloh. Takže bych doporučil make clean; make all.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.