Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver de layoutkonventioner som används av vcpkg för installationskatalogen. Installationskatalogen innehåller de filer som installeras av varje paket. Portförfattarna bör se till att deras paket följer de konventioner som beskrivs i den här artikeln.
I klassiskt läge finns installationskatalogen i $VCPKG_ROOT/installed (där $VCPKG_ROOT är din vcpkg-installationssökväg). I manifestläge har varje manifestfil en motsvarande vcpkg_installed katalog. Platsen för installationskatalogen kan ändras med alternativet --x-install-root .
Oavsett åtgärdsläge förblir layouten för installationskatalogen densamma.
Installationskatalogen skapas första gången ett paket installeras, om du inte ser någon installationskatalog kan du prova att installera några paket först.
Installationskatalogens rotnivå innehåller:
- En
vcpkgkatalog som håller reda på installerade paket och filer - En katalog för varje trilling. Varje triplet-katalog innehåller filer som installeras av varje paket.
Triplet kataloger
Utdata från varje paketinstallation finns i en trippelspecifik katalog.
Paket som är installerade för trillingen x64-windows finns till exempel i installed/x64-windows katalogen.
Layouten för underkatalogerna i varje trippelkatalog är densamma:
Note
Vissa paket kan skapa filer som inte matchar konventionerna som beskrivs här. Portförfattarna bör fastställa den slutliga platsen för de producerade filerna baserat på syftet som varje fil tjänar.
| Underkatalog | Filtyp |
|---|---|
bin |
Version .dll och .pdb filer |
debug/bin |
Felsöka .dll och .pdb filer |
debug/lib |
Felsöka .lib, .so, .dyliboch .a filer |
debug/lib/manual-link |
Manuellt länkbara felsökningsfiler .lib, .so, .dyliboch .a filer |
debug/plugins/<group> |
Felsökning av delade bibliotek för körningsbelastning |
debug/lib/pkgconfig |
Felsöka pkg-config-filer (.pc) |
include |
Rubrikfiler (.h, .hpp, .hxx) |
lib |
Släpp .lib, .so.dylib och .a filer |
lib/manual-link |
Manuellt länkbara versioner .lib, .so, .dyliboch .a filer |
lib/pkgconfig |
Släppa pkg-config-filer (.pc) |
plugins/<group> |
Delade bibliotek för runtime-load-version |
share/<port> |
Ytterligare konfigurationsoberoende filer |
share/<port>/copyright |
Licenstexten för paketet |
share/<port>/usage |
Fil med integrationsinstruktioner för build-system |
share/<port>/usage-accurate |
Markör för genererad användningsnoggrannhet |
share/<port>/vcpkg.spdx.json |
Genererad programvarufaktura för material |
share/<port>/vcpkg-port-config.cmake |
Portdefinierade CMake-funktioner och variabler |
share/<lowercase-package>/<package>Config.cmake |
CMake-integreringsfiler för find_package(package) |
share/<cmakepackagename>/vcpkg-cmake-wrapper.cmake |
CMake-åsidosättning find_package(<cmakepackagename>) |
share/pkgconfig |
Konfigurationsoberoende pkg-config-filer (.pc) |
tools/<port> |
Körbara verktyg och stödfiler |
bin och debug/bin kataloger
På Windows innehåller dessa kataloger DLL- respektive PDB-filer för versions- respektive felsökningskonfiguration. Alla körbara filer som skapas av en port bör flyttas till en tools/<port> katalog.
include
Innehåller huvudfiler (.h, .hpp, .hxx). Layouten under den här katalogen bör återspegla den avsedda användningen av paketets huvudfiler. Till exempel bör ett contoso bibliotek som avser att använda #include <contoso/contoso.h> ange huvudfilen include/contoso/contoso.h.
vcpkg förbjuder installation av några reserverade rubrikfilnamn i katalogens include rot, till exempel: err.h, user.h, time.hoch andra.
Bibliotek som anger ett förbjudet rubrikfilnamn bör placera sina huvudfiler i en include/<port> katalog. Om biblioteket tänker ersätta en systemhuvudfil bör den ange VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS principen i dess portfile.cmake.
lib och debug/lib kataloger
Innehåller statiska bibliotek, importbibliotek (på Windows) och delade bibliotek (på icke-Windows).
lib/manual-link och debug/lib/manual-link kataloger
Innehåller bibliotek som måste länkas manuellt.
Filer som kan orsaka problem när de länkas automatiskt måste placeras i mapparna lib/manual-link i stället för katalogen lib . Om till exempel ett bibliotek är avsett att definiera main() funktionen för ett program.
lib/pkgconfig, debug/lib/pkgconfig och share/pkgconfig kataloger
Innehåller pkg-config-integreringsfiler (.pc). Ett bibliotek bör inte tillhandahålla konfigurationsberoende och konfigurationsoberoende filer samtidigt.
Till exempel: installera lib/pkgconfig/contoso.pc inte och share/pkgconfig/contoso.pc.
plugins/<group> och debug/plugins/<group>
Innehåller delade bibliotek som är avsedda att läsas in under körning genom att använda program.
share/<port>
Innehåller diverse filer som installeras av varje port. Till exempel SPDX-filer, skript osv.
share/<port>/copyright
vcpkg förväntar sig att portar tillhandahåller en copyright fil som innehåller licensinformationen för det installerade paketet. Mer information finns i underhållsguiden .
share/<port>/usage
En textfil med instruktioner för att integrera ett bibliotek i ett projekt. Mer information finns i guiden för att tillhandahålla användningsdokumentation för paket .
share/<port>/usage-accurate
En tom markörfil som bekräftar vcpkgs genererade användningsinformation är korrekt. När den här filen installeras utelämnar vcpkg den heuristiska varningen från den genererade användningsinformationen. Mer information finns i dokumentationsguiden för användning .
share/<port>/vcpkg.spdx.json
Programvarufakturan för material som genereras av vcpkg för det installerade paketet.
share/<lowercase-package>/<package>Config.cmake, share/<package>/<package>-config.cmake
CMake-integreringsfiler ska placeras i share mappen och respektera CMake:s regler för
find_package(package) i CONFIG läge.
Om en port till exempel förväntar sig att tillhandahålla find_package(MyPackage REQUIRED)måste den ange antingen share/mypackage/MyPackageConfig.cmake eller share/mypackage/MyPackage-config.cmake.
Om ett paket innehåller CMake-integreringsfiler
vcpkg_cmake_config_fixup() hjälpfunktionen ska anropas för att åtgärda eventuella sökvägar som inte kan flyttas och för att sammanfoga byggkonfigurationer.
tools/<port>
Viktigt!
vcpkg är först och främst en beroendehanterare för C++-bibliotek. Portförfattare bör vara avsiktliga när de bestämmer sig för att inkludera verktyg i installationsutdata. Till exempel: överväg att endast installera en version som kan köras när felsökningsverktyget inte behövs.
Både körbara versioner och felsökningsbara filer ska tillhandahållas när körbara filer är avsedda för körning.
Innehåller körbara verktyg som skapas av en port. Vi rekommenderar starkt, men inte nödvändigt, att varje installerad körbar fil hamnar i en underkatalog som matchar namnet på den port som producerade den. En port kan till exempel contoso installera till ContosoGenerator.exetools/contoso/ContosoGenerator.exe.
Vissa portar kräver att deras körbara filer går till en bin underkatalog, i vilket fall det rekommenderade mönstret är tools/<port>/bin.