Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 ficheiros instalados por cada pacote. Os autores do port devem garantir que os seus pacotes seguem 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 teu vcpkg). No modo manifesto, cada ficheiro manifesto tem um diretório correspondente vcpkg_installed . A localização do diretório de instalação pode ser alterada com esta --x-install-root opção.
Independentemente do modo de operação, a disposição do diretório de instalação mantém-se a mesma.
O diretório de instalação é criado na primeira vez que um pacote é instalado; se não vires um diretório de instalação, tenta instalar alguns pacotes primeiro.
O nível raiz do diretório de instalação contém:
- Um
vcpkgdiretório que acompanha os pacotes e ficheiros instalados - Um diretório para cada trigémeo. Cada diretório triplet contém ficheiros instalados por cada pacote.
Diretórios de tercinos
A saída de cada instalação de pacote está contida num diretório específico de triplets.
Por exemplo, os pacotes instalados para o x64-windows triplet estão localizados no installed/x64-windows diretório.
A disposição dos subdiretórios dentro de cada diretório triplet é a mesma:
Note
Alguns pacotes podem produzir ficheiros que não correspondem às convenções aqui descritas. Os autores das portas devem determinar a localização final dos ficheiros produzidos com base no propósito de cada ficheiro.
| Subdiretório | Tipo de ficheiro |
|---|---|
bin |
Lançamento .dll e .pdb ficheiros |
debug/bin |
Depuração .dll e .pdb ficheiros |
debug/lib |
Depurar .lib, .so, .dylib, e .a ficheiros |
debug/lib/manual-link |
Depuração .libmanual ligável , .so, .dylib, e .a ficheiros |
debug/plugins/<group> |
Bibliotecas partilhadas de depuração em tempo de execução e carregamento |
debug/lib/pkgconfig |
Depurar ficheiros pkg-config (.pc) |
include |
Ficheiros de cabeçalho (.h, .hpp, .hxx) |
lib |
Libertar .lib, .so, .dylib e .a ficheiros |
lib/manual-link |
Versão .libmanual ligável , .so, .dylib, e .a ficheiros |
lib/pkgconfig |
Libertar ficheiros pkg-config (.pc) |
plugins/<group> |
Bibliotecas partilhadas de lançamento e carregamento em tempo de execução |
share/<port> |
Ficheiros adicionais independentes da configuração |
share/<port>/copyright |
O texto da licença do pacote |
share/<port>/usage |
Ficheiro de instruções de integração do sistema de construção |
share/<port>/usage-accurate |
Marcador de precisão de utilização gerado |
share/<port>/vcpkg.spdx.json |
Lista de materiais de software gerada |
share/<port>/vcpkg-port-config.cmake |
Funções e variáveis CMake definidas por portas |
share/<lowercase-package>/<package>Config.cmake |
Ficheiros de integração CMake para find_package(package) |
share/<cmakepackagename>/vcpkg-cmake-wrapper.cmake |
Sobreposição CMake find_package(<cmakepackagename>) |
share/pkgconfig |
Ficheiros pkg-config independentes da configuração (.pc) |
tools/<port> |
Ferramentas executáveis e ficheiros de suporte |
bin e debug/bin diretórios
No Windows, estes diretórios contêm ficheiros DLL e PDB para configuração de lançamento e depuração, respetivamente. Qualquer ficheiro executável produzido por uma porta deve ser movido para um tools/<port> diretório.
include
Contém ficheiros de cabeçalho (.h, .hpp, .hxx). O layout sob este diretório deve refletir o uso pretendido dos ficheiros de cabeçalho do pacote. Por exemplo, uma contoso biblioteca que pretende usar #include <contoso/contoso.h> deve fornecer o ficheiro include/contoso/contoso.hde cabeçalho .
o vcpkg proíbe a instalação de alguns nomes de ficheiros 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 ficheiro de cabeçalho proibido devem colocar os seus ficheiros de cabeçalho dentro de um include/<port> diretório. Se a biblioteca pretende substituir um ficheiro de cabeçalho do sistema, deve definir a VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS política no seu portfile.cmakeficheiro .
lib e debug/lib diretórios
Contém bibliotecas estáticas, bibliotecas de importação (no Windows) e bibliotecas partilhadas (em não-Windows).
lib/manual-link e debug/lib/manual-link diretórios
Contém bibliotecas que devem ser ligadas manualmente.
Ficheiros que podem causar problemas quando ligados automaticamente devem ser colocados nas lib/manual-link pastas em vez do lib diretório. Por exemplo, se uma biblioteca for destinada a definir a main() função de um programa.
lib/pkgconfig, debug/lib/pkgconfig e share/pkgconfig diretórios
Contém ficheiros de integração pkg-config (.pc). Uma biblioteca não deve fornecer ficheiros dependentes e dependentes da 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 partilhadas que devem ser carregadas durante o tempo de execução pelas aplicações consumidoras.
share/<port>
Contém ficheiros diversos instalados em cada porta. Por exemplo, ficheiros SPDX, scripts, etc.
share/<port>/copyright
O VCPKG espera que as portas forneçam um copyright ficheiro que contenha a informação de licença do pacote instalado. Consulte o guia do mantenedor para mais informações.
share/<port>/usage
Um ficheiro de texto com instruções para integrar uma biblioteca dentro de um projeto. Consulte o guia para fornecer documentação de utilização dos pacotes para mais informações.
share/<port>/usage-accurate
Um ficheiro de marcadores vazio que confirme a informação de utilização gerada pelo vcpkg é preciso. Quando este ficheiro é instalado, o vcpkg omite o aviso heurístico da informação de utilização gerada. Consulte o guia de documentação de utilização para mais informações.
share/<port>/vcpkg.spdx.json
A lista de materiais de software gerada pelo vcpkg para o pacote instalado.
share/<lowercase-package>/<package>Config.cmake, share/<package>/<package>-config.cmake
Os ficheiros de integração do CMake devem ser colocados na share pasta e respeitar as regras do CMake para
find_package(package) em CONFIG modo.
Por exemplo, se uma porta espera fornecer find_package(MyPackage REQUIRED), deve fornecer ou share/mypackage/MyPackageConfig.cmake .share/mypackage/MyPackage-config.cmake
Se um pacote fornecer ficheiros de integração CMake, o
vcpkg_cmake_config_fixup() A função auxiliar deve ser invocada para corrigir quaisquer caminhos não realocáveis e para fundir configurações de build.
tools/<port>
Importante
O vcpkg é, antes de mais, um gestor de dependências de bibliotecas em C++. Os autores das portas devem ser deliberados ao decidir incluir ferramentas na saída da instalação. Por exemplo: considere instalar apenas um executável de lançamento quando a ferramenta de depuração não for necessária.
Devem ser fornecidos executáveis de release e debug quando os executáveis forem destinados a uso em tempo de execução.
Contém ferramentas executáveis produzidas por uma porta. É altamente recomendado, mas não obrigatório, que cada executável instalado vá para um subdiretório correspondente ao nome da porta que o produziu. Por exemplo, uma contoso porta pode instalar um ContosoGenerator.exe para tools/contoso/ContosoGenerator.exe.
Algumas portas exigem que os seus executáveis entrem num bin subdiretório, caso em que o padrão recomendado é tools/<port>/bin.