diretórios_link_link_directories ¶

Novo na versão 3.13.

Adicionar diretórios de links a um alvo.

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

Especifica os caminhos nos quais o linker deve procurar bibliotecas ao ligar um determinado alvo. Cada item pode ser um caminho absoluto ou relativo, com este último sendo interpretado como relativo ao diretório-fonte atual. Estes itens serão adicionados ao comando link.

Os nomeados <target> devem ter sido criados por um comando como add_executable() ou add_library() e não devem ser anALIAS target.

Os INTERFACE, PUBLIC e PRIVATE palavras-chave são necessárias para especificar o escopo dos itens que os seguem. PRIVATE ePUBLIC os itens irão preencher os LINK_DIRECTORIES propriedade de <target>. PUBLIC e INTERFACE itens irão preencher a propriedadeINTERFACE_LINK_DIRECTORIES de <target>(suporte apenas a alvos importados INTERFACE itens). Cada item especifica um diretório de links e será convertido para um caminho absoluto, se necessário, antes de adicioná-lo à propriedade relevante. Repetidas chamadas para o mesmo <target> anexar itens na ordem chamada.

Se BEFORE for especificado, o conteúdo será preposto à propriedade relevante ao invés de ser anexado.

Argumentos para target_link_directories podem usar “expressões geradoras” com a sintaxe $<...>. Veja o manual cmake-generator-expressions(7) para ver as expressões disponíveis. Veja o cmake-buildsystem(7)manual para saber mais sobre a definição de propriedades do buildsystem.

Nota

Este comando raramente é necessário e deve ser evitado onde há outras escolhas. O comando find_library() fornece o caminho completo, que pode ser usado diretamente em chamadas para target_link_libraries().Situações onde um caminho de busca de biblioteca pode ser necessário incluem:

  • Geradores de projetos como o Xcode onde o usuário pode mudar a arquitetura alvo no momento da compilação, mas um caminho completo para uma biblioteca não pode ser usado porque ele fornece apenas uma arquitetura (i.e. não é um binário universal).

  • As bibliotecas podem ter outras dependências de bibliotecas privadas que esperam ser encontradas através de mecanismos RPATH, mas alguns linkers não são capazes de decodificar completamente esses caminhos (por exemplo, devido à presença de coisas como $ORIGIN).

Deixe uma resposta

O seu endereço de email não será publicado.