Tutorial: Menginstal dan menggunakan paket dengan CMake di Visual Studio

Tutorial ini menunjukkan kepada Anda cara membuat program C++ "Halo Dunia" yang menggunakan fmt pustaka dengan CMake, vcpkg, dan Visual Studio. Anda akan menginstal dependensi, mengonfigurasi, membangun, dan menjalankan aplikasi sederhana.

Prasyarat

1 - Menyiapkan vcpkg

  1. Mengkloning repositori tersebut

    Langkah pertama adalah mengkloning repositori vcpkg dari GitHub. Repositori berisi skrip untuk memperoleh vcpkg yang dapat dieksekusi dan registri pustaka sumber terbuka yang dikumpulkan yang dikelola oleh komunitas vcpkg. Untuk melakukan ini, jalankan:

    git clone https://github.com/microsoft/vcpkg.git
    

    Registri terkurasi vcpkg adalah kumpulan lebih dari 2.000 pustaka open-source. Pustaka ini telah divalidasi oleh alur integrasi berkelanjutan vcpkg untuk bekerja sama. Meskipun repositori vcpkg tidak berisi kode sumber untuk pustaka ini, repositori ini menyimpan resep dan metadata untuk membangun dan menginstalnya di sistem Anda.

  2. Jalankan skrip bootstrap

    Sekarang setelah Anda mengkloning repositori vcpkg, navigasikan ke vcpkg direktori dan jalankan skrip bootstrap:

    cd vcpkg && bootstrap-vcpkg.bat
    
    cd vcpkg; .\bootstrap-vcpkg.bat
    
    cd vcpkg && ./bootstrap-vcpkg.sh
    

    Skrip pemasangan awal melakukan pemeriksaan prasyarat dan mengunduh berkas vcpkg yang dapat dieksekusi.

    Itu saja! vcpkg disiapkan dan siap digunakan.

2 - Menyiapkan proyek Visual Studio

  1. Buat proyek Visual Studio

    • Membuat proyek baru di Visual Studio menggunakan templat "Proyek CMake"

    membuat proyek CMake baru

    Cuplikan layar UI Visual Studio untuk memperlihatkan cara membuat proyek CMake baru di Visual Studio

    • Beri nama proyek Anda "helloworld"
    • Centang kotak untuk "Tempatkan solusi dan proyek di direktori yang sama."
    • Klik tombol "Buat"

    penamaan proyek CMake Anda

    Cuplikan layar Visual Studio UI untuk memberi nama proyek CMake Anda dan mengklik tombol "buat".

  2. Konfigurasikan VCPKG_ROOT variabel lingkungan.

    Nota

    Mengatur variabel lingkungan dengan cara ini hanya memengaruhi sesi terminal saat ini. Untuk membuat perubahan ini permanen di semua sesi, atur melalui panel Variabel Lingkungan Sistem Windows.

    Buka jendela Developer PowerShell bawaan di Visual Studio.

    membuka powershell pengembang bawaan

    Cuplikan layar Visual Studio UI untuk jendela pengembang PowerShell bawaan

    Jalankan perintah berikut:

    $env:VCPKG_ROOT="C:\path\to\vcpkg"
    $env:PATH="$env:VCPKG_ROOT;$env:PATH"
    

    menyiapkan variabel lingkungan Anda

    Cuplikan layar Visual Studio UI untuk jendela pengembang PowerShell bawaan memperlihatkan cara menyiapkan VCPKG_ROOT dan menambahkannya ke PATH.

    Buka perintah Pengembang di Visual Studio.

    membuka perintah pengembang Visual Studio.

    Cuplikan layar UI Visual Studio untuk Command Prompt Pengembang.

    Jalankan perintah berikut:

    set "VCPKG_ROOT=C:\path\to\vcpkg"
    set PATH=%VCPKG_ROOT%;%PATH%
    

    menyiapkan variabel lingkungan Anda

    Cuplikan layar perintah pengembang Visual Studio memperlihatkan cara menyiapkan VCPKG_ROOT dan menambahkannya ke PATH.

    Pengaturan VCPKG_ROOT membantu Visual Studio menemukan instans vcpkg Anda. Menambahkannya untuk PATH memastikan Anda dapat menjalankan perintah vcpkg langsung dari shell.

  3. Buat file manifes dan tambahkan dependensi.

    Jalankan perintah berikut untuk membuat file manifes vcpkg (vcpkg.json):

    vcpkg new --application
    

    vcpkg new Perintah menambahkan vcpkg.json file dan vcpkg-configuration.json file di direktori proyek.

    Tambahkan paket fmt sebagai dependensi.

    vcpkg add port fmt
    

    Anda vcpkg.json sekarang seharusnya berisi:

    {
        "dependencies": [
            "fmt"
        ]
    }
    

    Ini adalah file manifes Anda. vcpkg membaca file manifes untuk mempelajari dependensi apa yang akan diinstal dan diintegrasikan dengan CMake untuk memberikan dependensi yang diperlukan oleh proyek Anda.

    File yang dihasilkan vcpkg-configuration.json memperkenalkan garis besar yang menempatkan batasan versi minimum pada dependensi proyek. Memodifikasi file ini berada di luar cakupan tutorial ini. Meskipun tidak berlaku dalam tutorial ini, ini adalah praktik yang baik untuk menjaga vcpkg-configuration.json file di bawah kontrol sumber untuk memastikan konsistensi versi di berbagai lingkungan pengembangan.

3 - Menyiapkan file proyek

  1. Mengubah file helloworld.cpp.

    Ganti konten helloworld.cpp dengan kode berikut:

    #include <fmt/core.h>
    
    int main()
    {
        fmt::print("Hello World!\n");
        return 0;
    }
    

    File sumber ini mencakup header <fmt/core.h>, yang merupakan bagian dari pustaka fmt. Fungsi ini main() memanggil fmt::print() untuk menghasilkan pesan "Halo Dunia!" ke konsol.

  2. Konfigurasikan CMakePresets.json file.

    CMake dapat secara otomatis menautkan pustaka yang diinstal oleh vcpkg ketika CMAKE_TOOLCHAIN_FILE diatur untuk menggunakan toolchain khusus vcpkg. Ini dapat dicapai menggunakan file preset CMake.

    Ubah CMakePresets.json agar sesuai dengan konten di bawah ini:

    {
      "version": 2,
      "configurePresets": [
        {
          "name": "vcpkg",
          "generator": "Ninja",
          "binaryDir": "${sourceDir}/build",
          "cacheVariables": {
            "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
          }
        }
      ]
    }
    

    Buat CMakeUserPresets.json dengan konten berikut:

    {
      "version": 2,
      "configurePresets": [
        {
          "name": "default",
          "inherits": "vcpkg",
          "environment": {
            "VCPKG_ROOT": "<path to vcpkg>"
          }
        }
      ]
    }
    

    File CMakePresets.json berisi preset tunggal bernama "vcpkg", yang mengatur CMAKE_TOOLCHAIN_FILE variabel. File CMakeUserPresets.json mengkonfigurasi variabel lingkungan VCPKG_ROOT untuk menunjuk ke jalur absolut yang berisi penginstalan lokal vcpkg Anda. Disarankan untuk tidak memasukkan CMakeUserPresets.json ke dalam sistem pengendalian versi.

  3. Sunting file CMakeLists.txt.

    Ganti isi file CMakeLists.txt dengan kode berikut:

    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)
    

    Sekarang, mari kita uraikan apa yang dilakukan setiap baris dalam CMakeLists.txt file:

    • cmake_minimum_required(VERSION 3.10): Menentukan bahwa versi minimum CMake yang diperlukan untuk membangun proyek adalah 3.10. Jika versi CMake yang diinstal pada sistem Anda lebih rendah dari ini, build gagal.
    • project(HelloWorld): Mengatur nama proyek ke "HelloWorld."
    • find_package(fmt CONFIG REQUIRED): Mencari pustaka fmt menggunakan file konfigurasi CMake-nya. Kata REQUIRED kunci memastikan bahwa kesalahan dihasilkan jika paket tidak ditemukan.
    • add_executable(HelloWorld helloworld.cpp): Menambahkan target yang dapat dieksekusi bernama "HelloWorld," yang dibangun dari file helloworld.cppsumber .
    • target_link_libraries(HelloWorld PRIVATE fmt::fmt): Menentukan bahwa executable HelloWorld harus ditautkan ke pustaka fmt. Kata PRIVATE kunci menunjukkan bahwa fmt hanya diperlukan untuk membangun HelloWorld dan tidak boleh disebarluaskan ke proyek dependen lainnya.

4 - Membangun dan menjalankan proyek

  1. Bangun proyek.

    Buat proyek menggunakan Build > Build All opsi dari menu atas.

  2. Jalankan aplikasi.

    Terakhir, jalankan executable:

    Menjalankan executable

    Cuplikan layar UI Visual Studio untuk menjalankan executable.

    Anda akan melihat output:

    Hasil keluaran program

    Tangkap layar keluaran program - "Halo Dunia!"

Langkah selanjutnya

Untuk mempelajari selengkapnya tentang vcpkg.json, lihat dokumentasi referensi kami: