add_library¶

Normal Libraries¶

add_library(<name> )

Tilføjer et biblioteksmål kaldet <name>, der skal bygges fra de kildefiler, der er anført i kommando-invitationen. (Kildefilerne kan udelades her, hvis de tilføjes senere ved hjælp af target_sources().) <name> svarer til det logiske målnavn og skal være globalt entydigt i et projekt. Det faktiske filnavn på det bibliotek, der oprettes, konstrueres på grundlag af konventioner for den native platform (f.eks. lib<name>.a eller<name>.lib).

STATIC, SHARED eller MODULE kan angives for at angive den type bibliotek, der skal oprettes. STATIC biblioteker er arkiver af objektfiler til brug ved linkning af andre mål. SHARED-biblioteker linkes dynamisk og indlæses på køretid. MODULE biblioteker er plugins, der ikke er linket til andre mål, men som kan indlæses dynamisk på køretid ved hjælp af dlopen-lignende funktionalitet. Hvis der ikke udtrykkeligt er angivet nogen type, er typen STATIC eller SHARED baseret på, om den aktuelle værdi af variablen BUILD_SHARED_LIBS er ON. For SHARED– ogMODULE-biblioteker sættes POSITION_INDEPENDENT_CODE targetproperty automatisk til ON.Et SHARED– eller STATIC-bibliotek kan markeres med FRAMEWORKtarget-egenskaben for at oprette en macOS Framework.

Hvis et bibliotek ikke eksporterer nogen symboler, skal det ikke deklareres som et SHARED-bibliotek. For eksempel skal en Windows ressource-DLL eller en administreret C++/CLIDLL, der ikke eksporterer ikke-administrerede symboler, være et MODULE-bibliotek.Dette skyldes, at CMake forventer, at et SHARED-bibliotek altid har et tilknyttet importbibliotek på Windows.

Biblioteksfilen vil som standard blive oprettet i den mappe i buildtræet, der svarer til den mappe i kildetræet, hvor kommandoen blev påkaldt. Se dokumentationen af ARCHIVE_OUTPUT_DIRECTORY,LIBRARY_OUTPUT_DIRECTORY ogRUNTIME_OUTPUT_DIRECTORY målegenskaberne for at ændre denne placering. Se dokumentationen af OUTPUT_NAME targetegenskaben for at ændre <name>-delen af det endelige filnavn.

Hvis EXCLUDE_FROM_ALL er angivet, vil den tilsvarende egenskab blive indstillet på det oprettede target. Se dokumentationen af EXCLUDE_FROM_ALLtarget-egenskaben for detaljer.

Kildeargumenter til add_library kan bruge “generatorudtryk” med syntaksen $<...>. Se cmake-generator-expressions(7)manualen for tilgængelige udtryk. Se cmake-buildsystem(7)manualen for yderligere oplysninger om definition af buildsystemegenskaber.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.