Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan konvensi tata letak yang digunakan oleh vcpkg untuk direktori penginstalan. Direktori penginstalan menyimpan file yang diinstal oleh setiap paket. Penulis port harus memastikan bahwa paket mereka mengikuti konvensi yang dijelaskan dalam artikel ini.
Dalam mode klasik, direktori penginstalan terletak di $VCPKG_ROOT/installed (di mana $VCPKG_ROOT adalah jalur penginstalan vcpkg Anda). Dalam mode manifes, setiap file manifes memiliki direktori yang vcpkg_installed sesuai. Lokasi direktori penginstalan dapat diubah dengan --x-install-root opsi .
Terlepas dari mode operasi, tata letak direktori penginstalan tetap sama.
Direktori penginstalan dibuat saat pertama kali paket diinstal, jika Anda tidak melihat direktori penginstalan, coba instal beberapa paket terlebih dahulu.
Tingkat akar direktori penginstalan berisi:
-
vcpkgDirektori yang melacak paket dan file yang diinstal - Direktori untuk setiap triplet. Setiap direktori triplet berisi file yang diinstal oleh setiap paket.
Direktori triplet
Output dari setiap penginstalan paket terkandung dalam direktori khusus triplet.
Misalnya, paket yang diinstal untuk triplet x64-windows terletak di installed/x64-windows direktori.
Tata letak untuk subdirektori di dalam setiap direktori triplet sama:
Note
Beberapa paket dapat menghasilkan file yang tidak cocok dengan konvensi yang dijelaskan di sini. Penulis port harus menentukan lokasi akhir file yang dihasilkan berdasarkan tujuan yang dilayani setiap file.
| Subdirektori | Jenis file |
|---|---|
bin |
Rilis .dll dan .pdb file |
debug/bin |
Debug .dll dan .pdb file |
debug/lib |
Debug .lib, .so, .dylib, dan .a file |
debug/lib/manual-link |
Debug .lib, , .so, .dylib, dan .a file yang dapat ditautkan secara manual |
debug/plugins/<group> |
Pustaka bersama debug pemuatan runtime |
debug/lib/pkgconfig |
Men-debug file pkg-config (.pc) |
include |
File header (.h, .hpp, .hxx) |
lib |
Rilis .lib, .so, .dylib dan .a file |
lib/manual-link |
Rilis .lib, , .so.dylib, dan .a file yang dapat ditautkan secara manual |
lib/pkgconfig |
Rilis file pkg-config (.pc) |
plugins/<group> |
Pustaka bersama rilis pemuatan runtime |
share/<port> |
File tambahan yang independen untuk konfigurasi |
share/<port>/copyright |
Teks lisensi untuk paket |
share/<port>/usage |
File instruksi integrasi sistem build |
share/<port>/usage-accurate |
Penanda akurasi penggunaan yang dihasilkan |
share/<port>/vcpkg.spdx.json |
Tagihan materi perangkat lunak yang dihasilkan |
share/<port>/vcpkg-port-config.cmake |
Fungsi dan variabel CMake yang ditentukan port |
share/<lowercase-package>/<package>Config.cmake |
File integrasi CMake untuk find_package(package) |
share/<cmakepackagename>/vcpkg-cmake-wrapper.cmake |
Penimpaan CMake find_package(<cmakepackagename>) |
share/pkgconfig |
File konfigurasi pkg-config independen konfigurasi (.pc) |
tools/<port> |
Alat yang dapat dieksekusi dan file pendukung |
bin dan debug/bin direktori
Pada Windows, direktori ini masing-masing berisi file DLL dan PDB untuk konfigurasi rilis dan debug. Setiap file yang dapat dieksekusi yang dihasilkan oleh port harus dipindahkan ke tools/<port> direktori.
include
Berisi file header (.h, .hpp, .hxx). Tata letak di bawah direktori ini harus mencerminkan penggunaan file header paket yang dimaksudkan. Misalnya, contoso pustaka yang ingin digunakan #include <contoso/contoso.h> harus menyediakan file include/contoso/contoso.hheader .
vcpkg melarang penginstalan beberapa nama file header yang dipesan include di akar direktori, misalnya: err.h, , user.htime.h, dan lainnya.
Pustaka yang menyediakan nama file header terlarang harus menempatkan file header mereka di dalam include/<port> direktori. Jika pustaka berniat untuk mengganti file header sistem, pustaka harus mengatur VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS kebijakan dalam .portfile.cmake
lib dan debug/lib direktori
Berisi pustaka statis, pustaka impor (pada Windows), dan pustaka bersama (di non-Windows).
lib/manual-link dan debug/lib/manual-link direktori
Berisi pustaka yang harus ditautkan secara manual.
File yang dapat menyebabkan masalah ketika ditautkan secara otomatis harus ditempatkan di lib/manual-link folder alih-alih lib direktori. Misalnya, jika pustaka dimaksudkan untuk menentukan main() fungsi untuk program.
lib/pkgconfig, debug/lib/pkgconfig dan share/pkgconfig direktori
Berisi file integrasi pkg-config (.pc). Pustaka tidak boleh menyediakan file yang bergantung pada konfigurasi dan independen konfigurasi secara bersamaan.
Misalnya: jangan instal lib/pkgconfig/contoso.pc dan share/pkgconfig/contoso.pc.
plugins/<group> dan debug/plugins/<group>
Berisi pustaka bersama yang dimaksudkan untuk dimuat selama runtime dengan menggunakan aplikasi.
share/<port>
Berisi file lain-lain yang diinstal oleh setiap port. Misalnya, file SPDX, skrip, dll.
share/<port>/copyright
vcpkg mengharapkan port menyediakan copyright file yang berisi informasi lisensi paket yang diinstal. Lihat panduan pemeliharaan untuk informasi selengkapnya.
share/<port>/usage
File teks dengan instruksi untuk mengintegrasikan pustaka dalam proyek. Lihat panduan untuk menyediakan dokumentasi penggunaan untuk paket untuk informasi selengkapnya.
share/<port>/usage-accurate
File penanda kosong yang menegaskan informasi penggunaan yang dihasilkan vcpkg akurat. Ketika file ini diinstal, vcpkg menghilangkan peringatan heuristik dari informasi penggunaan yang dihasilkan. Lihat panduan dokumentasi penggunaan untuk informasi selengkapnya.
share/<port>/vcpkg.spdx.json
Tagihan perangkat lunak bahan yang dihasilkan oleh vcpkg untuk paket yang diinstal.
share/<lowercase-package>/<package>Config.cmake, share/<package>/<package>-config.cmake
File integrasi CMake harus ditempatkan di share folder dan mematuhi aturan CMake untuk
find_package(package) dalam CONFIG mode.
Misalnya, jika port mengharapkan untuk menyediakan find_package(MyPackage REQUIRED), port harus menyediakan atau share/mypackage/MyPackageConfig.cmakeshare/mypackage/MyPackage-config.cmake.
Jika paket menyediakan file integrasi CMake,
vcpkg_cmake_config_fixup() fungsi pembantu harus dipanggil untuk memperbaiki jalur yang tidak dapat direlokasi dan untuk menggabungkan konfigurasi build.
tools/<port>
Important
vcpkg adalah manajer dependensi pustaka C++ pertama dan utama. Penulis port harus disarankan saat memutuskan untuk menyertakan alat dalam output penginstalan. Misalnya: pertimbangkan untuk menginstal hanya rilis yang dapat dieksekusi saat alat debug tidak diperlukan.
Executable rilis dan debug harus disediakan ketika executable ditujukan untuk penggunaan runtime.
Berisi alat yang dapat dieksekusi yang dihasilkan oleh port. Sangat disarankan, tetapi tidak diperlukan, bahwa setiap executable yang diinstal masuk ke subdirektori yang cocok dengan nama port yang menghasilkannya. Misalnya, contoso port mungkin menginstal ContosoGenerator.exe ke tools/contoso/ContosoGenerator.exe.
Beberapa port mengharuskan executable mereka masuk ke bin subdirektori, dalam hal ini pola yang direkomendasikan adalah tools/<port>/bin.