Bağımlılıklarınızı yüklemenin önerilen yöntemi için "Bildirim dosyasından bağımlılık yükleme" bölümüne bakın.
Uyarı
Bazı vcpkg özellikleri klasik modda kullanılamaz.
vcpkg iki işlem moduna sahiptir: klasik mod ve bildirim modu. Bu makalede, klasik modu kullanarak paketlerin nasıl yükleneceği açıklanmaktadır. Çoğu kullanıcı için bunun yerine bildirim modunu kullanmanızı öneririz.
Klasik modda, bağımlılıklarınızı ortak bir yükleme dizinine yüklemek için komut satırı arabirimi olarak vcpkg kullanırsınız. Genellikle, içinde %VCPKG_ROOT%/installedbulunur, burada %VCPKG_ROOT% vcpkg'nin yükleme dizinidir.
Yeni bir klasörde şu içeriklere sahip adlı main.cxx bir kaynak dosya oluşturun:
#include <cxxopts.hpp>
#include <fmt/format.h>
#include <range/v3/view.hpp>
namespace view = ranges::views;
int fib(int x)
{
int a = 0, b = 1;
for (int it : view::repeat(0) | view::take(x))
{
(void)it;
int tmp = a;
a += b;
b = tmp;
}
return a;
}
int main(int argc, char **argv)
{
cxxopts::Options options("fibo", "Print the fibonacci sequence up to a value 'n'");
options.add_options()("n,value", "The value to print to", cxxopts::value<int>()->default_value("10"));
auto result = options.parse(argc, argv);
auto n = result["value"].as<int>();
for (int x : view::iota(1) | view::take(n))
{
fmt::print("fib({}) = {}\n", x, fib(x));
}
}
Kod, içindeki vcpkg genel kayıt defterinde https://github.com/Microsoft/vcpkgbulunan açık kaynak kitaplıklarına başvurur: cxxopts, fmtve range-v3;
2 - vcpkg'yi derleme sisteminizle tümleştirme
Bu adımda, projeyi her derlediğinizde proje bağımlılıklarınızın otomatik olarak yüklenmesi veya geri yüklenmesi için vcpkg'yi CMake veya MSBuild ile tümleştirmeyi göstereceğiz.
Farklı bir derleme sistemi kullanıyorsanız sonraki adıma geçin: Bağımlılıkları yükleme.
MSBuild projelerinizde vcpkg kullanmak için aşağıdaki komutu çalıştırın:
vcpkg integrate install
KOMUTUNU yalnızca MSBuild tümleştirmesini vcpkg integrate install ilk kez etkinleştirmek istediğinizde çalıştırmanız gerekir. Bu, mevcut ve gelecekteki tüm projeleriniz için MSBuild tümleştirmesini etkinleştirir. MSBuild sistem genelinde tümleştirmeyi kaldırmak için kullanın vcpkg integrate remove .
Bu tümleştirme yöntemi, vcpkg yüklü paketleri aşağıdaki proje özelliklerine otomatik olarak ekler: Include Directories, Link Directoriesve Link Libraries. Ayrıca bu, gerekli DLL'lerin derleme çıktı klasörüne kopyalanmasını sağlayan bir derleme sonrası eylemi oluşturur. Bu, Visual Studio 2015 veya daha yeni bir sürümünü kullanan tüm çözümler ve projeler için çalışır.
CMake projelerinizde vcpkg kullanmak için değişkenini CMAKE_TOOLCHAIN_FILE vcpkg'nin CMake araç zinciri dosyasını kullanacak şekilde ayarlamanız gerekir. vcpkg araç zinciri içindedir %VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake; burada %VCPKG_ROOT% vcpkg yükleme yolunuzdur.
Araç zinciri dosyasını ayarlamak için şu yöntemlerden birini kullanın:
CMake yapılandırma çağrınızda parametre olarak geçirin -DCMAKE_TOOLCHAIN_FILE=<path/to/vcpkg>/scripts/buildsystems/vcpkg.cmake .
CMAKE_TOOLCHAIN_FILE Dosyanızdaki CMakeLists.txt ilk çağrıdan project() önce CMake değişkenini ayarlayın.
3 - Bağımlılıkları yükleme
Kod açık kaynak kitaplıklarına başvurur: cxxopts, fmtve range-v3; bunların tümü konumundaki https://github.com/Microsoft/vcpkgvcpkg genel kayıt defterinde kullanılabilir.
Bu paketleri yüklemek için komutunu kullanın vcpkg install .
vcpkg install cxxopts fmt range-v3
$ ./vcpkg install cxxopts fmt range-v3
Computing installation plan...
The following packages will be built and installed:
cxxopts:x64-windows -> 3.1.1
fmt:x64-windows -> 10.0.0
range-v3:x64-windows -> 0.12.0#1
* vcpkg-cmake:x64-windows -> 2023-05-04
* vcpkg-cmake-config:x64-windows -> 2022-02-06#1
Additional packages (*) will be modified to complete this operation.
(omitted)
cxxopts provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(cxxopts CONFIG REQUIRED)
target_link_libraries(main PRIVATE cxxopts::cxxopts)
The package fmt provides CMake targets:
find_package(fmt CONFIG REQUIRED)
target_link_libraries(main PRIVATE fmt::fmt)
# Or use the header-only version
find_package(fmt CONFIG REQUIRED)
target_link_libraries(main PRIVATE fmt::fmt-header-only)
range-v3 provides CMake targets:
# this is heuristically generated, and may not be correct
find_package(range-v3 CONFIG REQUIRED)
target_link_libraries(main PRIVATE range-v3::meta range-v3::concepts range-v3::range-v3)
4 - Projeyi oluşturma
Önemli
Yüklü paketlerinizin üçlüsünün projenizin yapılandırmasıyla eşleştiğinden emin olun. x64-windows-static 64 bit projeleriniz ve x86-windows 32 bit projeleriniz için veya x86-windows-static kullanınx64-windows.
Şu komutu çalıştırın: cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake, ancak yerine %VCPKG_ROOT% vcpkg yükleme yolunu yazın.
PS D:\projects\manifest-example> cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake
-- Building for: Visual Studio 17 2022
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.25921.
-- The CXX compiler identification is MSVC 19.37.32814.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Preview/VC/Tools/MSVC/14.37.32814/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: D:/projects/manifest-example/build
3 - CMake projesini derleme
Projeyi derlemek için aşağıdaki komutu çalıştırın: : cmake --build build
PS D:\projects\manifest-example> cmake --build build
MSBuild version 17.7.0-preview-23319-02+6829506b8 for .NET Framework
Checking Build System
Building Custom Rule D:/projects/manifest-example/CMakeLists.txt
main.cxx
fibo.vcxproj -> D:\projects\manifest-example\build\Debug\fibo.exe
Building Custom Rule D:/projects/manifest-example/CMakeLists.txt
Sonraki Adımlar
Bu öğreticide, komut satırı arabirimi olarak vcpkg kullanarak basit bir proje için bağımlılıkları yüklemişsinizdir.
Şimdi deneyebileceğiniz bazı ek görevler şunlardır:
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.
vcpkg geri bildirimi
vcpkg, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
.NET projesi oluşturun ve projenizde paketler eklemeyi ve paket bağımlılıklarını yönetmeyi öğrenin. Visual Studio Code aracılığıyla C# uygulamalarınıza kitaplık ve araç eklemek için .NET Core CLI'yi ve NuGet kayıt defterini kullanın.