add_library¶

Normal Libraries¶

add_library(<name> )

Přidá cíl knihovny s názvem <name>, který bude sestaven ze zdrojových souborů uvedených ve volání příkazu. (Zdrojové soubory zde mohou být vynechány, pokud budou přidány později pomocí target_sources().) <name>odpovídá logickému názvu cíle a musí být globálně jedinečný v rámci projektu. Skutečný název souboru vytvářené knihovny je sestaven na základě konvencí nativní platformy (například lib<name>.a nebo<name>.lib).

STATIC, SHARED nebo MODULE lze zadat pro určení typu knihovny, která má být vytvořena. Knihovny STATIC jsou archivy objektových souborůpro použití při linkování jiných cílů. Knihovny SHARED se linkujídynamicky a načítají se za běhu. MODULE knihovny jsou zásuvné moduly, které nejsou spojovány s jinými cíli, ale mohou být načteny dynamicky za běhu pomocí funkce podobné dlopen. Pokud není typ zadán explicitně, je typ STATIC nebo SHARED podle toho, zda je aktuální hodnota proměnné BUILD_SHARED_LIBS ON. Pro knihovny SHARED aMODULE je vlastnost POSITION_INDEPENDENT_CODE target automaticky nastavena na ON. knihovna SHARED nebo STATIC může být označena vlastností FRAMEWORKtarget pro vytvoření macOS Framework.

Pokud knihovna neexportuje žádné symboly, nesmí být deklarována jako knihovnaSHARED. Například knihovna DLL se zdroji systému Windows nebo spravovaná knihovna C++/CLIDLL, která neexportuje žádné nespravované symboly, by musela být knihovnou MODULE. je to proto, že CMake očekává, že knihovna SHARED bude mít ve Windows vždy přidruženou knihovnu importu.

Ve výchozím nastavení bude soubor knihovny vytvořen v adresáři stromu sestaveníodpovídajícímu adresáři stromu zdrojů, ve kterém byl příkazvyvolán. Změnu tohoto umístění naleznete v dokumentaci k vlastnostem ARCHIVE_OUTPUT_DIRECTORY,LIBRARY_OUTPUT_DIRECTORY aRUNTIME_OUTPUT_DIRECTORY target. Pro změnu části <name> názvu finálního souboru viz dokumentaci vlastnosti OUTPUT_NAME target.

Pokud je zadána EXCLUDE_FROM_ALL, bude odpovídající vlastnost nastavena na vytvářeném cíli. Podrobnosti viz dokumentace vlastnosti EXCLUDE_FROM_ALLcíl.

Argumenty zdroje add_library mohou používat „generátorové výrazy“ se syntaxí $<...>. Dostupné výrazy naleznete v cmake-generator-expressions(7)příručce. Více informací o definování vlastností buildsystému naleznete v cmake-buildsystem(7)příručce.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.