Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo descreve as convenções de layout usadas pelo vcpkg para o diretório de instalação. O diretório de instalação contém os arquivos instalados por cada pacote. Os autores de ports devem garantir que seus pacotes sigam as convenções descritas neste artigo.
No modo clássico, o diretório de instalação está localizado em $VCPKG_ROOT/installed (onde $VCPKG_ROOT está o caminho de instalação do vcpkg). No modo de manifesto, cada arquivo de manifesto tem um diretório correspondente vcpkg_installed . O local do diretório de instalação pode ser alterado com a --x-install-root opção.
Independentemente do modo de operação, o layout do diretório de instalação permanece o mesmo.
O diretório de instalação é criado na primeira vez que um pacote é instalado, se você não vir um diretório de instalação, tente instalar alguns pacotes primeiro.
O nível raiz do diretório de instalação contém:
- Um
vcpkgdiretório que mantém o controle de pacotes e arquivos instalados - Um diretório para cada trigêmeo. Cada diretório triplo contém arquivos instalados por cada pacote.
Diretórios de trigêmeos
A saída de cada instalação de pacote está contida em um diretório específico de trigêmeos.
Por exemplo, os pacotes instalados para o x64-windows trio estão localizados no installed/x64-windows diretório.
O layout dos subdiretórios dentro de cada diretório triplo é o mesmo:
Observação
Alguns pacotes podem produzir arquivos que não correspondem às convenções descritas aqui. Os autores de portas devem determinar o local final dos arquivos produzidos com base na finalidade de cada arquivo.
| Subdiretório | Tipo de arquivo |
|---|---|
bin |
Liberação .dll e .pdb arquivos |
debug/bin |
Depuração .dll e .pdb arquivos |
debug/lib |
Depurar .lib, .so, .dylibe .a arquivos |
debug/lib/manual-link |
Depuração .lib, .so, .dylib, e .a arquivos vinculáveis manualmente |
debug/plugins/<group> |
Arquivos de depuração .dll de carregamento em tempo de execução |
debug/lib/pkgconfig |
Depurar arquivos pkgconfig (.pc) |
include |
Arquivos de cabeçalho (.h, .hpp, .hxx) |
lib |
Liberar .lib, .soe .dylib .a arquivos |
lib/manual-link |
Versão , , , e .a arquivos vinculáveis manualmente .lib.so.dylib |
lib/pkgconfig |
Arquivos Pkgconfig (.pc) |
plugins/<group> |
Arquivos de versão .dll de carregamento de tempo de execução |
share/<port> |
Arquivos adicionais independentes de configuração |
share/<port>/copyright |
O texto da licença para o pacote |
share/<port>/usage |
Arquivo de instruções de integração do sistema de compilação |
share/<port>/vcpkg-port-config.cmake |
Funções e variáveis do CMake definidas pela porta |
share/<lowercase-package>/<package>Config.cmake |
Arquivos de integração do CMake para find_package(package) |
share/<cmakepackagename>/vcpkg-cmake-wrapper.cmake |
Substituição do CMake find_package(<cmakepackagename>) |
share/pkgconfig |
Arquivos pkgconfig independentes de configuração (.pc) |
tools/<port> |
Ferramentas executáveis |
bin e debug/bin diretórios
No Windows, esses diretórios contêm arquivos DLL e PDB para configuração de versão e depuração, respectivamente. Qualquer arquivo executável produzido por um port deve ser movido para um tools/<port> diretório.
include
Contém arquivos de cabeçalho (.h, .hpp, .hxx). O layout nesse diretório deve refletir o uso pretendido dos arquivos de cabeçalho do pacote. Por exemplo, uma contoso biblioteca que pretende usar #include <contoso/contoso.h> deve fornecer o arquivo include/contoso/contoso.hde cabeçalho .
O vcpkg proíbe a instalação de alguns nomes de arquivo de cabeçalho reservados na raiz do include diretório, por exemplo: err.h, user.h, time.h, e outros.
As bibliotecas que fornecem um nome de arquivo de cabeçalho proibido devem colocar seus arquivos de cabeçalho dentro de um include/<port> diretório. Se a biblioteca pretende substituir um arquivo de cabeçalho do sistema, ela deve definir a VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS política em seu portfile.cmakearquivo .
lib e debug/lib diretórios
Contém bibliotecas estáticas, bibliotecas de importação (no Windows) e bibliotecas compartilhadas (em versões não Windows).
lib/manual-link e debug/lib/manual-link diretórios
Contém bibliotecas que devem ser vinculadas manualmente.
Os arquivos que podem causar problemas quando vinculados automaticamente devem ser colocados nas lib/manual-link pastas em vez do lib diretório. Por exemplo, se uma biblioteca se destina a definir a main() função de um programa.
lib/pkgconfige debug/lib/pkgconfig share/pkgconfig diretórios
Contém arquivos de integração pkgconfig (.pc). Uma biblioteca não deve fornecer arquivos dependentes e independentes de configuração ao mesmo tempo.
Por exemplo: não instale lib/pkgconfig/contoso.pc e share/pkgconfig/contoso.pc.
plugins/<group> e debug/plugins/<group>
Contém bibliotecas compartilhadas que devem ser carregadas durante o tempo de execução consumindo aplicativos.
share/<port>
Contém arquivos diversos instalados por cada porta. Por exemplo, arquivos SPDX, scripts, etc.
share/<port>/copyright
O vcpkg espera que o ports forneça um copyright arquivo que contenha as informações de licença do pacote instalado. Consulte o guia do mantenedor para obter mais informações.
share/<port>/usage
Um arquivo de texto com instruções para integrar uma biblioteca em um projeto. Consulte o guia para fornecer documentação de uso para pacotes para obter mais informações.
share/<lowercase-package>/<package>Config.cmake, share/<package>/<package>-config.cmake
Os arquivos de integração do CMake devem ser colocados na pasta e respeitar as share regras do CMake para find_package(package) no CONFIG modo.
Por exemplo, se uma porta espera fornecer find_package(MyPackage REQUIRED), ela deve fornecer ou share/mypackage/MyPackageConfig.cmake share/mypackage/MyPackage-config.cmake.
Se um pacote fornecer arquivos de integração do CMake, o vcpkg_cmake_config_fixup() A função auxiliar deve ser invocada para corrigir quaisquer caminhos não realocáveis e mesclar configurações de compilação.
tools/<port>
Importante
vcpkg é, antes de tudo, um gerenciador de dependências de bibliotecas C++. Os autores de ports devem ser deliberados ao decidir incluir ferramentas na saída da instalação. Por exemplo: considere instalar apenas um executável de versão quando a ferramenta de depuração não for necessária.
Os executáveis de versão e depuração devem ser fornecidos quando os executáveis se destinam ao uso em tempo de execução.
Contém ferramentas executáveis produzidas por um port. É altamente recomendado, mas não obrigatório, que cada executável instalado vá para um subdiretório que corresponda ao nome do port que o produziu. Por exemplo, um contoso port pode instalar um ContosoGenerator.exe arquivo para tools/contoso/ContosoGenerator.exe.
Algumas portas exigem que seus executáveis entrem em um bin subdiretório, caso em que o padrão recomendado é tools/<port>/bin.