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, CMake, vcpkg ve Visual Studio Code ile kitaplığını 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
- Visual Studio Code
- C++ derleyicisi
- Windows 7 veya üzeri
- Git
- Ninja
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 - Proje klasörü oluşturma
Not
Bu öğreticiyi Windows'da çalıştırıyor ve derleyiciniz olarak MSVC kullanıyorsanız VISUAL Studio Code örneğini VS için Geliştirici Komut İstemi'nden veya VS için Geliştirici PowerShell'den başlatmanız gerekir. Bu, derleyici yolunun ve diğer ortam değişkenlerinin doğru şekilde ayarlanmasını sağlar.
Proje dosyalarını istediğiniz bir konumda tutmak için bir klasör oluşturun. Bu öğretici için "helloworld" adlı bir klasör oluşturacağız. Ardından Visual Studio Code kullanarak klasörü açın.
mkdir helloworld
code helloworld
3 - Visual Studio Code Uzantılarını Yükleme
Uzantı görünümüne gidin ve C++ Uzantısı'nı yükleyin. Bu, C++ IntelliSense ve kod gezintisini etkinleştirir.
C++ Uzantısı ile Visual Studio Code Uzantısı görünümünün ekran görüntüsü
CMake Araçları Uzantısı'nı yükleyin. Bu, Visual Studio Code'da CMake desteğini etkinleştirir.
CMake Araçları Uzantısı ile Visual Studio Code Uzantısı görünümünün ekran görüntüsü
4 - Ortam değişkenlerini ayarlama
- Ortam değişkenini
VCPKG_ROOTyapılandırın.
Visual Studio Code'da yeni terminal açma: Terminal > Yeni Terminal
Aşağıdaki komutları çalıştırın:
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"
VCPKG_ROOT ayarlama ve Visual Studio Code terminalinde PATH'e ekleme ekran görüntüsü.
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.
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.
set "VCPKG_ROOT=C:\path\to\vcpkg"
set 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. export veya ~/.bashrc) ekleyin~/.zshrc.
export VCPKG_ROOT=/c/path/to/vcpkg
export PATH=$PATH:$VCPKG_ROOT
Ayar VCPKG_ROOT , Visual Studio Code'un vcpkg örneğinizi bulmasına yardımcı olur.
Bunu eklemek PATH , vcpkg komutlarını doğrudan kabuktan çalıştırabilmenizi sağlar.
- Bir bildirim dosyası oluşturun ve bağımlılıkları ekleyin.
Klasörün kökünde vcpkg.json bir vcpkg bildirim dosyası (helloworld) oluşturmak için aşağıdaki komutu çalıştırın:
vcpkg new --application
komutu projenin vcpkg new dizinine bir vcpkg.json dosya ve bir vcpkg-configuration.json dosya ekler.
fmt Paketi bağımlılık olarak ekleyin:
vcpkg add port fmt
Artık şu vcpkg.json içeriği içermelidir:
{
"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.
Oluşturulan vcpkg-configuration.json dosya, projenin bağımlılıklarına en düşük sürüm kısıtlamaları getiren bir temel sunar. Bu dosyayı değiştirmek bu öğreticinin kapsamının dışındadır. Bu öğreticide geçerli olmasa da, farklı geliştirme ortamlarında sürüm tutarlılığı sağlamak için dosyayı kaynak denetimi altında tutmak vcpkg-configuration.json iyi bir uygulamadır.
5 - Proje dosyalarını ayarlama
-
CMakeLists.txtDosyayı oluşturma
Aşağıdaki içeriğe sahip proje klasörünün kökünde adlı CMakeLists.txt yeni bir dosya 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)
Dosyadaki CMakeLists.txt her satırın ne olduğunu ayıralım:
-
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 derlemefmtiçin gerekli olduğunu ve diğer bağımlı projelere yayılmaması gerektiğini belirtirHelloWorld.
- 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.cpp dosyada <fmt/core.h> , üst bilgi kitaplığını fmt kullanmak için eklenmiştir. İşlev main() daha sonra fmt::print() konsola "Merhaba Dünya!" iletisinin çıkışını çağırır.
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 bir CMakePresets.json dosya oluşturun:
{
"version": 2,
"configurePresets": [
{
"name": "vcpkg",
"generator": "Ninja",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
}
}
]
}
- "helloworld" dizininde aşağıdaki içeriğe sahip bir dosya oluşturun
CMakeUserPresets.json:
{
"version": 2,
"configurePresets": [
{
"name": "default",
"inherits": "vcpkg",
"environment": {
"VCPKG_ROOT": "<path to vcpkg>"
}
}
]
}
Bu CMakePresets.json dosya, CMake için tek bir "vcpkg" ön ayarı içerir ve değişkeni ayarlar CMAKE_TOOLCHAIN_FILE . , CMAKE_TOOLCHAIN_FILE CMake proje sisteminin vcpkg tarafından sağlanan C++ kitaplıklarını tanımasını sağlar. Yalnızca CMakePresets.json kaynak denetimine iade edilirken CMakeUserPresets.json yerel olarak kullanılması amaçlanır.
6 - Projeyi derleme ve çalıştırma
- Görünüm
CMake: BuildKomut Paleti'nde > Komut Paleti'ne giderek projeyi çalıştırın
Visual Studio Code'da CMake derleme komutunu seçme işleminin ekran görüntüsü.
default CMake ön ayarını seçin. Bu, vcpkg araç zincirini etkinleştirir.
Visual Studio Code'daki CMake derleme komutunda ön ayarı seçme işleminin ekran görüntüsü.
- Projeyi başlatma
Programı çalıştırın:
./build/HelloWorld.exe
./build/HelloWorld
Çıktıyı görmeniz gerekir:
Hello World!
Sonraki adımlar
hakkında vcpkg.jsondaha fazla bilgi edinmek için başvuru belgelerimize bakın: