Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden de indelingsconventies beschreven die worden gebruikt door vcpkg voor de installatiemap. De installatiemap bevat de bestanden die door elk pakket zijn geïnstalleerd. Portauteurs moeten ervoor zorgen dat hun pakketten voldoen aan de conventies die in dit artikel worden beschreven.
In de klassieke modus bevindt de installatiemap zich in $VCPKG_ROOT/installed (waar $VCPKG_ROOT is uw vcpkg-installatiepad). In de manifestmodus heeft elk manifestbestand een bijbehorende vcpkg_installed map. De locatie van de installatiemap kan worden gewijzigd met de --x-install-root optie.
Ongeacht de bewerkingsmodus blijft de indeling van de installatiemap hetzelfde.
De installatiemap wordt gemaakt wanneer een pakket voor het eerst wordt geïnstalleerd, als u geen installatiemap ziet, probeert u eerst een aantal pakketten te installeren.
Het hoofdniveau van de installatiemap bevat:
- Een
vcpkgmap die geïnstalleerde pakketten en bestanden bijhoudt - Een map voor elke triplet. Elke drievoudige map bevat bestanden die door elk pakket zijn geïnstalleerd.
Drievoudige mappen
De uitvoer van elke pakketinstallatie bevindt zich in een drievoudige map.
Pakketten die zijn geïnstalleerd voor de x64-windows triplet bevinden zich bijvoorbeeld in installed/x64-windows de map.
De indeling voor de submappen in elke drievoudige map is hetzelfde:
Note
Sommige pakketten kunnen bestanden produceren die niet overeenkomen met de conventies die hier worden beschreven. Poortauteurs moeten de uiteindelijke locatie van de geproduceerde bestanden bepalen op basis van het doel dat elk bestand dient.
| Submap | Bestandstype |
|---|---|
bin |
Release .dll en .pdb bestanden |
debug/bin |
Fouten opsporen .dll en .pdb bestanden |
debug/lib |
Fouten opsporen.lib, en .dylib.so.a bestanden |
debug/lib/manual-link |
Handmatig koppelingsbare foutopsporing.lib, .so- en .a.dylibbestanden |
debug/plugins/<group> |
Fouten in gedeelde bibliotheken voor runtime laden |
debug/lib/pkgconfig |
Fouten opsporen in pkg-config-bestanden (.pc) |
include |
Koptekstbestanden (.h, .hpp, .hxx) |
lib |
Bestanden vrijgeven.lib, .dylib.sovrijgeven en .a bestanden |
lib/manual-link |
Handmatig te koppelen release .lib, .so, .dyliben .a bestanden |
lib/pkgconfig |
Pkg-config-bestanden vrijgeven (.pc) |
plugins/<group> |
Gedeelde bibliotheken voor runtime laden |
share/<port> |
Aanvullende configuratie-onafhankelijke bestanden |
share/<port>/copyright |
De licentietekst voor het pakket |
share/<port>/usage |
Bestand met integratie-instructies voor buildsysteem |
share/<port>/usage-accurate |
Markering voor gegenereerde gebruiksnauwkeurigheid |
share/<port>/vcpkg.spdx.json |
Gegenereerde softwarefactuur van materialen |
share/<port>/vcpkg-port-config.cmake |
Door poort gedefinieerde CMake-functies en -variabelen |
share/<lowercase-package>/<package>Config.cmake |
CMake-integratiebestanden voor find_package(package) |
share/<cmakepackagename>/vcpkg-cmake-wrapper.cmake |
CMake-onderdrukking find_package(<cmakepackagename>) |
share/pkgconfig |
Configuratie-onafhankelijke pkg-config-bestanden (.pc) |
tools/<port> |
Uitvoerbare hulpprogramma's en ondersteunende bestanden |
bin en debug/bin mappen
Op Windows bevatten deze mappen RESPECTIEVELIJK DLL- en PDB-bestanden voor de release- en foutopsporingsconfiguratie. Elk uitvoerbaar bestand dat door een poort wordt geproduceerd, moet worden verplaatst naar een tools/<port> map.
include
Bevat headerbestanden (.h, .hpp, .hxx). De indeling onder deze map moet overeenkomen met het beoogde gebruik van de headerbestanden van het pakket. Een bibliotheek die van plan is te gebruiken#include <contoso/contoso.h>, contoso moet bijvoorbeeld het headerbestand include/contoso/contoso.hbevatten.
vcpkg verbiedt het installeren van een aantal gereserveerde headerbestandsnamen in de hoofdmap van de include map, bijvoorbeeld: err.h, user.h, time.hen andere.
Bibliotheken die een verboden headerbestandsnaam opgeven, moeten hun headerbestanden in een include/<port> map plaatsen. Als de bibliotheek van plan is een systeemkopbestand te vervangen, moet het beleid worden ingesteld in de VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS .portfile.cmake
lib en debug/lib mappen
Bevat statische bibliotheken, importbibliotheken (op Windows) en gedeelde bibliotheken (op niet-Windows).
lib/manual-link en debug/lib/manual-link mappen
Bevat bibliotheken die handmatig moeten worden gekoppeld.
Bestanden die problemen kunnen veroorzaken wanneer de koppeling automatisch wordt gekoppeld, moeten in de lib/manual-link mappen worden geplaatst in plaats van in de lib map. Als een bibliotheek bijvoorbeeld bedoeld is om de main() functie voor een programma te definiëren.
lib/pkgconfig
share/pkgconfig en debug/lib/pkgconfig mappen
Bevat pkg-config-integratiebestanden (.pc). Een bibliotheek mag niet tegelijkertijd configuratieafhankelijke en configuratie-onafhankelijke bestanden bieden.
Bijvoorbeeld: niet installeren lib/pkgconfig/contoso.pc en share/pkgconfig/contoso.pc.
plugins/<group> en debug/plugins/<group>
Bevat gedeelde bibliotheken die tijdens runtime moeten worden geladen door toepassingen te gebruiken.
share/<port>
Bevat diverse bestanden die door elke poort zijn geïnstalleerd. Bijvoorbeeld SPDX-bestanden, scripts, enzovoort.
share/<port>/copyright
vcpkg verwacht dat poorten een copyright bestand leveren dat de licentiegegevens van het geïnstalleerde pakket bevat. Zie de handleiding voor onderhoud voor meer informatie.
share/<port>/usage
Een tekstbestand met instructies voor het integreren van een bibliotheek binnen een project. Zie de handleiding voor het verstrekken van gebruiksdocumentatie voor pakketten voor meer informatie.
share/<port>/usage-accurate
Een leeg markeringsbestand dat bevestigt dat de gegenereerde gebruiksgegevens van vcpkg juist zijn. Wanneer dit bestand is geïnstalleerd, laat vcpkg de heuristische waarschuwing weg van de gegenereerde gebruiksgegevens. Zie de handleiding voor gebruiksdocumentatie voor meer informatie.
share/<port>/vcpkg.spdx.json
De softwarefactuur van materialen die door vcpkg worden gegenereerd voor het geïnstalleerde pakket.
share/<lowercase-package>/<package>Config.cmake, share/<package>/<package>-config.cmake
CMake-integratiebestanden moeten in de share map worden geplaatst en moeten de regels van CMake respecteren voor
find_package(package) in CONFIG de modus.
Als een poort bijvoorbeeld verwacht te leveren find_package(MyPackage REQUIRED), moet share/mypackage/MyPackageConfig.cmake deze een of share/mypackage/MyPackage-config.cmake.
Als een pakket CMake-integratiebestanden bevat,
vcpkg_cmake_config_fixup() De helperfunctie moet worden aangeroepen om eventuele niet-herbruikbare paden te herstellen en buildconfiguraties samen te voegen.
tools/<port>
Important
vcpkg is in de eerste plaats een C++-bibliotheekafhankelijkheidsbeheerder. Poortauteurs moeten bewust zijn bij het kiezen om hulpprogramma's op te nemen in de installatie-uitvoer. Denk bijvoorbeeld aan het installeren van alleen een uitvoerbare release wanneer het hulpprogramma voor foutopsporing niet nodig is.
Uitvoerbare bestanden voor release en foutopsporing moeten worden opgegeven wanneer de uitvoerbare bestanden zijn bedoeld voor runtimegebruik.
Bevat uitvoerbare hulpprogramma's die door een poort worden geproduceerd. Het wordt ten zeerste aanbevolen, maar niet vereist, dat elk geïnstalleerd uitvoerbaar bestand naar een submap gaat die overeenkomt met de naam van de poort die het heeft geproduceerd. Een poort kan bijvoorbeeld contoso een ContosoGenerator.exe naar tools/contoso/ContosoGenerator.exe.
Sommige poorten vereisen dat hun uitvoerbare bestanden naar een bin submap gaan, in welk geval het aanbevolen patroon is tools/<port>/bin.