target_link_directories¶

Nyt i version 3.13.

Føj linkmapper til et target.

target_link_directories(<target> <INTERFACE|PUBLIC|PRIVATE> ...])

Angiver de stier, hvor linkeren skal søge efter biblioteker, når der linkes til et givet target. Hvert element kan være en absolut eller relativ sti, hvor sidstnævnte fortolkes som relativ til den aktuelle kildemappe. Disse elementer vil blive tilføjet til link-kommandoen.

Det navngivne <target> skal være oprettet af en kommando somadd_executable() eller add_library() og må ikke være etALIAS-mål.

Nøgleordene INTERFACE, PUBLIC og PRIVATE er påkrævet for at specificere omfanget af de elementer, der følger efter dem. PRIVATE og PUBLIC-elementer udfylder LINK_DIRECTORIES-egenskaben i <target>. – og INTERFACE-elementer udfylder INTERFACE_LINK_DIRECTORIES-egenskaben for <target> (IMPORTED-mål understøtter kun INTERFACE-elementer).Hvert element angiver en linkmappe og konverteres om nødvendigt til en absolut sti, før det føjes til den relevante egenskab. Gentagne kald til den samme <target> tilføjer elementer i den rækkefølge, de er kaldt.

Hvis BEFORE er angivet, vil indholdet blive tilføjet til den relevante egenskab i stedet for at blive tilføjet.

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

Note

Denne kommando er sjældent nødvendig og bør undgås, når der er andre valgmuligheder. Foretrækker at videregive fulde absolutte stier til biblioteker, hvor det er muligt, da dette sikrer, at det korrekte bibliotek altid vil blive linket.Kommandoen find_library() giver den fulde sti, som normalt kan bruges direkte i kald til target_link_libraries().Situationer, hvor en bibliotekssøgningssti kan være nødvendig, omfatter:

  • Projektgeneratorer som Xcode, hvor brugeren kan skifte målarkitektur på byggetidspunktet, men en fuld sti til et bibliotek kan ikke bruges, fordi det kun giver én arkitektur (i.dvs. det er ikke en universel binær fil).

  • Biblioteker kan selv have andre private biblioteksafhængigheder, som forventer at blive fundet via RPATH-mekanismer, men nogle linkere er ikke i stand til at afkode disse stier fuldt ud (f.eks. på grund af tilstedeværelsen af ting som $ORIGIN).

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.