Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.gitVcpkg 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
vcpkggidin ve bootstrap betiğini yürütebilirsiniz:cd vcpkg && bootstrap-vcpkg.batcd vcpkg; .\bootstrap-vcpkg.batcd vcpkg && ./bootstrap-vcpkg.shBootstrap 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_ROOTyapılandırın.export VCPKG_ROOT=/path/to/vcpkg export PATH=$VCPKG_ROOT:$PATHNot
komutunu kullanarak
exportortam 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.~/.bashrcveya~/.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 newprojenizin dizininde bir bildirim dosyası (vcpkg.json) oluşturun:vcpkg new --applicationArdından bağımlılığı ekleyin
fmt:vcpkg add port fmtAşağıdaki
vcpkg.jsongibi 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.jsondosya, 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.jsoniyi bir uygulamadır.Proje dosyalarını oluşturun.
Aşağıdaki içeriğe
CMakeLists.txtsahip dosyayı oluşturun:cmake_minimum_required(VERSION 3.10) project(HelloWorld) find_package(fmt CONFIG REQUIRED) add_executable(HelloWorld helloworld.cpp) target_link_libraries(HelloWorld PRIVATE fmt::fmt)Şimdi dosyadaki her satırın
CMakeLists.txtne 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. anahtarREQUIREDsözcüğü, paket bulunamazsa bir hata oluşturulmasını sağlar.add_executable(HelloWorld helloworld.cpp): Kaynak dosyasındanhelloworld.cppoluşturulan "HelloWorld" adlı yürütülebilir bir hedef ekler.target_link_libraries(HelloWorld PRIVATE fmt::fmt): Yürütülebilir dosyanınHelloWorldkitaplığa karşıfmtbağlanması gerektiğini belirtir.PRIVATEanahtar sözcüğü, yalnızca derlemeHelloWorldiçin gerekli olduğunu ve diğer bağımlı projelere yayılmaması gerektiğini belirtirfmt.
Aşağıdaki içeriğe
helloworld.cppsahip dosyayı oluşturun:#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }Bu
helloworld.cppdosyada<fmt/core.h>, üst bilgi kitaplığınıfmtkullanmak 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, vcpkg'nin özel araç zincirini kullanacak şekilde ayarlandığında vcpkg
CMAKE_TOOLCHAIN_FILEtarafından yüklenen kitaplıkları otomatik olarak bağlayabilir. Bu, CMake ön ayarları dosyaları kullanılarak derlenebilir.Dizinin içinde
helloworldaşağıdaki dosyaları oluşturun:CMakePresets.json{ "version": 2, "configurePresets": [ { "name": "vcpkg", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" } } ] }CMakeUserPresets.json{ "version": 2, "configurePresets": [ { "name": "default", "inherits": "vcpkg", "environment": { "VCPKG_ROOT": "<path to vcpkg>" } } ] }Dosya,
CMakePresets.jsondeğişkeni ayarlayanCMAKE_TOOLCHAIN_FILE"vcpkg" adlı tek bir ön ayar içerir. Dosya,CMakeUserPresets.jsonortam değişkeniniVCPKG_ROOTyerel vcpkg yüklemenizin bulunduğu mutlak yola işaret eder. Sürüm denetim sistemlerinin denetlenmemesiCMakeUserPresets.jsonönerilir.Son olarak, CMake kullanarak derlemeyi yapılandırın:
cmake --preset=defaultProjeyi derleme
Çalıştır:
cmake --build buildUygulamayı ç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!