Öğretici: vcpkg ile paketleri yükleme ve kullanma
Bu öğreticide, kitaplığı CMake ve vcpkg ile kullanan fmt
bir C++ "Merhaba Dünya" programının nasıl oluşturulacağı gösterilmektedir. Bağımlılıkları yükleyecek, basit bir uygulama yapılandıracak, derleyecek ve çalıştıracaksınız.
Önkoşullar
Not
Windows kullanıcıları için Visual Studio'nun MSVC'si (Microsoft Visual C++ Derleyicisi), C++ geliştirme için gerekli derleyicidir.
1 - vcpkg ayarlama
Depoyu kopyalama
İlk adım, vcpkg deposunu GitHub'dan kopyalamaktır. Depo, vcpkg yürütülebilir dosyasını ve vcpkg topluluğu tarafından tutulan seçilmiş açık kaynak kitaplıklarının kayıt defterini almaya yönelik betikler içerir. Bunu yapmak için şunu çalıştırın:
git clone https://github.com/microsoft/vcpkg.git
Vcpkg tarafından seçilen kayıt defteri, 2.000'den fazla açık kaynak kitaplık kümesidir. Bu kitaplıklar vcpkg'nin sürekli tümleştirme işlem hatları tarafından birlikte çalışacak şekilde doğrulanmıştır. vcpkg deposu bu kitaplıkların kaynak kodunu içermese de, bunları derlemek ve sisteminize yüklemek için tarifler ve meta veriler içerir.
Bootstrap betiğini çalıştırma
Artık vcpkg deposunu kopyaladığınıza göre dizine
vcpkg
gidin ve bootstrap betiğini yürütebilirsiniz:cd vcpkg && bootstrap-vcpkg.bat
cd vcpkg; .\bootstrap-vcpkg.bat
cd vcpkg && ./bootstrap-vcpkg.sh
Bootstrap betiği önkoşul denetimleri gerçekleştirir ve vcpkg yürütülebilir dosyasını indirir.
İşte hepsi bu! vcpkg ayarlandı ve kullanıma hazır.
2 - Projeyi ayarlama
Ortam değişkenini
VCPKG_ROOT
yapılandırın.export VCPKG_ROOT=/path/to/vcpkg export PATH=$VCPKG_ROOT:$PATH
Not
komutunu kullanarak
export
ortam değişkenlerini ayarlamak yalnızca geçerli kabuk oturumunu etkiler. Bu değişikliği oturumlar arasında kalıcı hale getirmek için komutunu kabuğunuzun profil betiğine (ör.~/.bashrc
veya~/.zshrc
) ekleyinexport
.set VCPKG_ROOT="C:\path\to\vcpkg" set PATH=%VCPKG_ROOT%;%PATH%
Not
Ortam değişkenlerini bu şekilde ayarlamak yalnızca geçerli terminal oturumunu etkiler. Bu değişiklikleri tüm oturumlarda kalıcı hale getirmek için Bunları Windows Sistem Ortamı Değişkenleri paneli aracılığıyla ayarlayın.
$env:VCPKG_ROOT = "C:\path\to\vcpkg" $env:PATH = "$env:VCPKG_ROOT;$env:PATH"
Not
Ortam değişkenlerini bu şekilde ayarlamak yalnızca geçerli terminal oturumunu etkiler. Bu değişiklikleri tüm oturumlarda kalıcı hale getirmek için Bunları Windows Sistem Ortamı Değişkenleri paneli aracılığıyla ayarlayın.
Ayar
VCPKG_ROOT
, vcpkg'ye vcpkg örneğinizin nerede olduğunu bildirir. Bunu eklemekPATH
, vcpkg komutlarını doğrudan kabuktan çalıştırabilmenizi sağlar.Proje dizinini oluşturun.
mkdir helloworld && cd helloworld
3 - Bağımlılıkları ve proje dosyalarını ekleme
Bildirim dosyasını oluşturun ve bağımlılığı ekleyin
fmt
.İlk olarak, komutunu dizinin içinden
helloworld
çalıştırarakvcpkg new
projenizin dizininde bir bildirim dosyası (vcpkg.json
) oluşturun:vcpkg new --application
Ardından bağımlılığı ekleyin
fmt
:vcpkg add port fmt
Aşağıdaki
vcpkg.json
gibi görünmelidir:{ "dependencies": [ "fmt" ] }
Bu, bildirim dosyanızdır. vcpkg, hangi bağımlılıkların yükleneceğini öğrenmek için bildirim dosyasını okur ve projenizin gerektirdiği bağımlılıkları sağlamak için CMake ile tümleşir.
Varsayılan
vcpkg-configuration.json
dosya, projenizin kullanması gereken en düşük bağımlılık sürümlerini belirterek temel kısıtlamalar sunar. Bu dosyayı değiştirmek bu öğreticinin kapsamı dışında olsa da, projenizin bağımlılıkları için sürüm kısıtlamaları tanımlamada önemli bir rol oynar. Bu nedenle, bu öğretici için kesinlikle gerekli olmasa da, farklı geliştirme ortamlarında sürüm tutarlılığı sağlamak için kaynak denetiminize eklemenizvcpkg-configuration.json
iyi bir uygulamadır.Proje dosyalarını oluşturun.
Aşağıdaki içeriğe
CMakeLists.txt
sahip dosyayı oluşturun:cmake_minimum_required(VERSION 3.10) project(HelloWorld) find_package(fmt CONFIG REQUIRED) add_executable(HelloWorld main.cpp) target_link_libraries(HelloWorld PRIVATE fmt::fmt)
Şimdi dosyadaki her satırın
CMakeLists.txt
ne yaptığını görelim:cmake_minimum_required(VERSION 3.10)
: Projeyi oluşturmak için gereken en düşük CMake sürümünün 3.10 olduğunu belirtir. Sisteminizde yüklü olan CMake sürümü bundan düşükse bir hata oluşturulur.project(HelloWorld)
: Projenin adını "HelloWorld" olarak ayarlar.find_package(fmt CONFIG REQUIRED)
: CMake yapılandırma dosyasını kullanarak kitaplığı ararfmt
. anahtarREQUIRED
sözcüğü, paket bulunamazsa bir hata oluşturulmasını sağlar.add_executable(HelloWorld main.cpp)
: Kaynak dosyasındanmain.cpp
oluşturulan "HelloWorld" adlı yürütülebilir bir hedef ekler.target_link_libraries(HelloWorld PRIVATE fmt::fmt)
: Yürütülebilir dosyanınHelloWorld
kitaplığa karşıfmt
bağlanması gerektiğini belirtir.PRIVATE
anahtar sözcüğü, yalnızca derlemeHelloWorld
için gerekli olduğunu ve diğer bağımlı projelere yayılmaması gerektiğini belirtirfmt
.
Aşağıdaki içeriğe
main.cpp
sahip dosyayı oluşturun:#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }
Bu
main.cpp
dosyada<fmt/core.h>
, üst bilgi kitaplığınıfmt
kullanmak için eklenmiştir. İşlevmain()
daha sonrafmt::print()
konsola "Merhaba Dünya!" iletisinin çıkışını çağırır.
4 - Projeyi derleme ve çalıştırma
CMake yapılandırmasını çalıştırma
CMake proje sisteminin vcpkg tarafından sağlanan C++ kitaplıklarını tanımasına izin vermek için araç zinciri dosyasını sağlamanız
vcpkg.cmake
gerekir. Bunu otomatikleştirmek için "helloworld" dizininde aşağıdaki içeriğe sahip birCMakePresets.json
dosya oluşturun:{ "version": 2, "configurePresets": [ { "name": "default", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" } } ] }
Bu
CMakePresets.json
dosya, CMake için tek bir "varsayılan" ön ayar içerir ve değişkeni ayarlarCMAKE_TOOLCHAIN_FILE
. ,CMAKE_TOOLCHAIN_FILE
CMake proje sisteminin vcpkg tarafından sağlanan C++ kitaplıklarını tanımasını sağlar. ekleme işlemiCMakePresets.json
, CMake çalıştırılırken araç zincirini belirtme işlemini otomatikleştirir.CMake kullanarak derlemeyi yapılandırın:
cmake --preset=default
Projeyi derleme
Çalıştır:
cmake --build build
Uygulamayı çalıştırma
Son olarak, uygulamanızın çalıştığını görmek için yürütülebilir dosyayı çalıştırın:
./build/HelloWorld Hello World!
.\build\HelloWorld.exe Hello World!
Sonraki adımlar
hakkında vcpkg.json
daha fazla bilgi edinmek için başvuru belgelerimize bakın:
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin