Makedepend - Makedepend

nezávislý je Unix nástroj používaný ke generování závislosti z C zdrojové soubory. Verze pro Windows byla zpřístupněna někdy v roce 2002 [1] a aktualizovaný poslední rok 2007 na UnxUtils.[2]

Dějiny

nezávislý byl vyvinut jako součást MIT je Projekt Athena. To bylo používáno značně v budově X11 a pomocné balíčky, ale od té doby je nahrazeno zařízeními pro generování závislostí různých překladačů a nyní se používá především jako záložní řešení v nejhorším případě, např. podle depcomp a GNU Automake.

Používání

nezávislý je vyvolána se seznamem zdrojových souborů:

makedepend [možnosti] foo.c bar.c ...

Častěji je však vyvoláván jako cíl z a makefile, obvykle pod záviset cíl, takový, že záviset vyvolá nezávislý na všechny zdrojové soubory v projektu. Jeden takový příklad cíle by byl následující:

SRCS = file1.c file2.c ...CFLAGS = -O -DHACK -I ../ foobar -xyzzáviset:        makedepend - $(CFLAGS) -- $(SRCS)

Účel

Při budování projektů v jazyce C je to bezpodmínečně nutné sestavení (a užitečné pro čistou kompilaci), aby bylo možné sledovat závislosti mezi kompilační jednotky. C vyjadřuje rozhraní mezi kompilačními jednotkami prostřednictvím hlavičkové soubory; jako takový je často nutné znovu sestavit kompilační jednotku, když se změní záhlaví, které obsahuje. udělat je třeba o těchto závislostech informovat.

nezávislý řeší tento problém analýzou kódu zdrojových souborů C za účelem vygenerování seznamu závislostí (tyto hlavičkové soubory jsou zahrnuty přímo a nepřímo). Je schopen pochopit podmíněná kompilace konstruuje tak, aby negenerovalo nadměrné závislosti. Potom připojí pravidla vyjadřující závislosti do Makefile.

Nedostatky

Hodně moderní zdrojový kód používá „podmíněnou kompilaci“ k řízení toho, která část zdrojového kódu má být použita na základě symbolů C před zpracováním definovaných kompilátorem. Tyto symboly mohou uvádět název nebo rodinu kompilátoru, číslo verze, operační systém a velikost slova. V závislosti na těchto symbolech se mohou zahrnuté soubory změnit. Makedepend však není sám kompilátorem a nedefinuje žádné takové symboly, takže výstup může být nesprávný. Dále bude nějaký kód záměrně vytvářet explicitní chybu, pokud nebude schopen rozpoznat žádný podporovaný kompilátor, a nebude tedy makedepend vůbec použitelný.

Alternativy

Většina moderních překladačů poskytuje příznak (často -M), který používá vlastní zdrojový analyzátor kompilátoru ke generování seznamu závislostí[Citace je zapotřebí ]. To může být výhodné nezávislý protože to snižuje pravděpodobnost, že generované závislosti budou v rozporu s vlastním chováním kompilátoru.

Vzhledem k tomu, že překladače přijímají různé příznaky pro generování závislostí a mohou se chovat odlišně při výstupu informací o závislostech, je žádoucí použít obálkový skript, který může vhodně vyvolat kompilátor (a vrátit se zpět na nezávislý Pokud je potřeba). Jeden populární takový obalový skript je depcomp, který je distribuován a používán GNU Automake.[3]

Solaris udělat zahrnuje podporu pro sledování závislostí, která se aktivuje zadáním "cíle speciální funkce" .KEEP_STATE.[4]

Reference

  1. ^ „Added makedepend from X11 distribution“. Archivovány od originál dne 2006-02-09. Citováno 2013-09-17.
  2. ^ UnxUtils projekt hostil dne SourceForge
  3. ^ Sledování závislostí v Automake, Manuál Automake
  4. ^ Solaris značka (1) Man-page

externí odkazy