Öğretici: Visual Studio Code'da CMake ile paketleri yükleme ve kullanma

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

1 - vcpkg ayarlama

  1. 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.

  2. 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 - 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++ Visual Studio Code Uzantısını yükleme

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ı Visual Studio Code Uzantısı'nı yükleme

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

  1. Ortam değişkenini VCPKG_ROOT yapı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 ortam değişkenlerini ayarlama

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.

  1. 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

  1. CMakeLists.txt Dosyayı 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ığı arar fmt . anahtar REQUIRED sözcüğü, paket bulunamazsa bir hata oluşturulmasını sağlar.
  • add_executable(HelloWorld helloworld.cpp): Kaynak dosyasından helloworld.cppoluşturulan "HelloWorld" adlı yürütülebilir bir hedef ekler.
  • target_link_libraries(HelloWorld PRIVATE fmt::fmt): Yürütülebilir dosyanın HelloWorld kitaplığa karşı fmt bağlanması gerektiğini belirtir. PRIVATE anahtar sözcüğü, yalnızca derleme fmt için gerekli olduğunu ve diğer bağımlı projelere yayılmaması gerektiğini belirtirHelloWorld.
  1. Aşağıdaki içeriğe helloworld.cpp sahip 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"
      }
    }
  ]
}
  1. "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

  1. Görünüm CMake: Build Komut Paleti'nde > Komut Paleti'ne giderek projeyi çalıştırın

Visual Studio Code'da CMake derleme komutu

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'da CMake derleme komutunda ön ayar seçme

Visual Studio Code'daki CMake derleme komutunda ön ayarı seçme işleminin ekran görüntüsü.

  1. 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: