Öğ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/microsoft/vcpkg-docs 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/microsoft/vcpkg-docs",
"reference": "vcpkg-registry",
"baseline": "768f6a3ad9f9b6c4c2ff390137690cf26e3c3453",
"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.
beicode
beison
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
- Sürüm oluşturmayı kullanarak tekrarlanabilir derlemeler için sürümlerinizi kilitleme
- İkili önbelleğe alma kullanarak ikili dosyaları yerel veya sürekli tümleştirme çalıştırmaları arasında yeniden kullanma
- Özel kayıt defterlerini kullanarak özel kitaplıklarınızı yönetme