Aracılığıyla paylaş


Öğretici: Git tabanlı kayıt defterinden bağımlılık yükleme

vcpkg, paket depolarını yönetmek için kayıt defterleri adlı bir kavram kullanır. Varsayılan olarak, vcpkg konumundaki genel olarak seçilmiş kayıt defterinden https://github.com/Microsoft/vcpkgkitaplıkları bulur. Ek paketlerin yüklenmesini sağlamak için üçüncü taraf veya özel kayıt defterleri ekleyebilirsiniz.

Kendi kayıt defterlerinizi oluşturma hakkında bilgi için paketleri kayıt defterinde yayımlama öğreticisini okuyun.

Kayıt defterleri bir vcpkg-configuration.json dosya kullanılarak yapılandırılır.

Bu öğreticide şunları öğreneceksiniz:

Önkoşullar

  • Terminal
  • C++ compiiler
  • vcpkg
  • CMake

1 - Proje oluşturma

Yeni bir klasörde aşağıdaki proje dosyalarını oluşturun:

Kaynak dosya (main.cpp):

#include <iostream>
#include <beison.h>

int main()
{
    beison::Object obj;
    obj.insert("name", beison::Value::string("demo"));
    std::cout << beison::stringify(obj) << std::endl;
    return 0;
}

CMake proje dosyası (CMakeLists.txt):

cmake_minimum_required(VERSION 3.18)

project(demo CXX)

add_executable(main main.cpp)

find_package(beicode CONFIG REQUIRED)
find_package(beison CONFIG REQUIRED)
target_link_libraries(main PRIVATE beicode::beicode beison::beison)

2 - Bildirim ve yapılandırma dosyalarını oluşturma

Şu komutu çalıştırın:

vcpkg new --application

Commmand new iki dosya oluşturur: bildirim (vcpkg.json) dosyası ve yapılandırma(vcpkg-configuration.json) dosyası. Komut genellikle ve --version bağımsız değişkenlerinin sağlanmasını gerektirir--name, ancak bu öğretici bir son kullanıcı uygulaması olduğundan bunun yerine seçeneğini kullanırız--application.

Oluşturulan dosyalar aşağıdaki içeriklere sahip olacaktır:

vcpkg.json

{}

vcpkg-configuration.json

{
  "default-registry": {
    "kind": "git",
    "baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
    "repository": "https://github.com/microsoft/vcpkg"
  },
  "registries": [
    {
      "kind": "artifact",
      "location": "https://github.com/microsoft/vcpkg-ce-catalog/archive/refs/heads/main.zip",
      "name": "microsoft"
    }
  ]
}

Oluşturulan yapılandırma dosyası iki kayıt defteri tanımı içerir. Budefault-registry, temel olarak en son işlemeyi ve bu öğreticinin amacı için gereksiz olan ve silinebilen ek "artifacts" bir kayıt defterini kullanarak içindeki seçilmiş vcpkg kayıt defterine https://github.com/Microsoft/vcpkgişaret eder.

3 - Vcpkg yapılandırma dosyanıza özel kayıt defterleri ekleme

Kaynak kodu, vcpkg tarafından seçilen kayıt defterinde bulunmayan iki kitaplıka başvurur. Bu bağımlılıkları karşılamak için ek kayıt defteri olarak eklememiz https://github.com/NorthWindTraders/vcpkg-registry gerekir.

içeriğini vcpkg-configuration.json şu şekilde değiştirin:

{
  "default-registry": {
    "kind": "git",
    "baseline": "7476f0d4e77d3333fbb249657df8251c28c4faae",
    "repository": "https://github.com/microsoft/vcpkg"
  },
  "registries": [
    {
      "kind": "git",
      "repository": "https://github.com/northwindtraders/vcpkg-registry",
      "baseline": "dacf4de488094a384ca2c202b923ccc097956e0c",
      "packages": [ "beicode", "beison" ]
    }
  ]
}

Yapılandırma dosyası ve beison paketleri için beicode kaynak olarak bir dış kayıt defteri ekler. Ek kayıt defterleri, listeyi kullanarak "packages" sağladıkları paketleri açıkça bildirmelidir. vcpkg paket adlarını bir kayıt defterine çözümlediğinde, ek kayıt defterinde bulunmayan tüm paket adları varsayılan olarak "default-registry"olarak ayarlanır. Kayıt defterleri belgelerinde paket adı çözümlemesi hakkında daha fazla bilgi edinin.

4 - Kayıt defterinden paketleri yükleme

Yapılandırma dosyasına bir kayıt defteri eklendikten sonra, bu dosyadan paket yüklemek için özel bir işlem yapılması gerekmez. vcpkg, normal yükleme makinelerini takip ederken, sizinki vcpkg.json paket adlarını doğru kayıt defterine şeffaf bir şekilde çözümler.

beicodebeison ve bağımlılıklarını dosyanıza vcpkg.json ekleyin:

vcpkg add port beicode beison

Projeyi derleyin ve çalıştırın ( $VCPKG_ROOT yerine vcpkg yükleme yolunu kullanın):

cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake
cmake --build build

Programı çalıştırın, çıkış şu şekilde görünmelidir:

{
    "name": "demo"
}

Sonraki adımlar