target_link_directories¶

Nytt i version 3.13.

Lägg till länkkataloger till ett mål.

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

Specificerar sökvägarna i vilka länkaren ska söka efter bibliotek när den länkar ett givet mål. Varje post kan vara en absolut eller relativ sökväg, där den senare tolkas som relativ till den aktuella källkatalogen. Dessa objekt kommer att läggas till i länkningskommandot.

Det namngivna <target> måste ha skapats av ett kommando somadd_executable() eller add_library() och får inte vara ettALIAS-mål.

Nyckelorden INTERFACE, PUBLIC och PRIVATE krävs för att specificera räckvidden för de objekt som följer efter dem. PRIVATE och PUBLIC poster kommer att fylla LINK_DIRECTORIES egenskapen i <target>. PUBLIC och INTERFACE poster kommer att fylla INTERFACE_LINK_DIRECTORIES egenskapen för <target> (IMPORTED mål har endast stöd för INTERFACE poster).Varje post specificerar en länkkatalog och kommer vid behov att konverteras till en absolut sökväg innan den läggs till den relevanta egenskapen. Upprepade anrop för samma <target> lägger till objekt i den ordning som anropas.

Om BEFORE specificeras kommer innehållet att läggas till den relevanta egenskapen i stället för att läggas till.

Argument till target_link_directories kan använda “generatoruttryck” med syntaxen $<...>. Se cmake-generator-expressions(7)handboken för tillgängliga uttryck. Se cmake-buildsystem(7)manualen för mer information om hur man definierar buildsystemegenskaper.

Note

Detta kommando är sällan nödvändigt och bör undvikas när det finns andra valmöjligheter. Föredra att lämna fullständiga absoluta sökvägar till bibliotek när det är möjligt, eftersom detta säkerställer att rätt bibliotek alltid länkas.Kommandot find_library() ger den fullständiga sökvägen, som i allmänhet kan användas direkt i anrop till target_link_libraries().Situationer där en sökväg till ett bibliotek kan behövas är bland annat:

  • Projektsgeneratorer som Xcode där användaren kan byta målarkitektur vid byggnadstillfället, men där en fullständig sökväg till ett bibliotek inte kan användas eftersom det bara tillhandahåller en arkitektur (dvs.Det är inte en universell binärfil).

  • Bibliotek kan själva ha andra privata biblioteksberoenden som förväntas hittas via RPATH-mekanismer, men vissa länkare kan inte avkoda dessa sökvägar fullt ut (t.ex. på grund av att det finns saker som $ORIGIN).

Lämna ett svar

Din e-postadress kommer inte publiceras.