Tutorial: Menginstal dan menggunakan paket dengan CMake di Visual Studio Code

Tutorial ini menunjukkan kepada Anda cara membuat program C++ "Halo Dunia" yang menggunakan fmt pustaka dengan CMake, vcpkg, dan Visual Studio Code. 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 - Membuat folder proyek

Nota

Jika Anda menjalankan tutorial ini di Windows dan menggunakan MSVC sebagai pengkompilasi, Anda perlu memulai instans Visual Studio Code dari Prompt Perintah Pengembang untuk VS atau Developer PowerShell untuk VS. Ini memastikan bahwa jalur pengkompilasi dan variabel lingkungan lainnya disiapkan dengan benar.

Buat folder untuk menyimpan file proyek di lokasi pilihan Anda. Untuk tutorial ini, kami membuat folder bernama "helloworld". Kemudian buka folder menggunakan Visual Studio Code.

mkdir helloworld
code helloworld

3 - Menginstal Ekstensi Visual Studio Code

Navigasikan ke tampilan Ekstensi, dan instal Ekstensi C++. Ini memungkinkan C++ IntelliSense dan navigasi kode.

menginstal Ekstensi C++ Visual Studio Code

Cuplikan layar tampilan Ekstensi Visual Studio Code dengan Ekstensi C++

Instal Ekstensi Alat CMake. Ini memungkinkan dukungan CMake di Visual Studio Code.

menginstal Ekstensi Alat CMake di Visual Studio Code

Cuplikan layar tampilan Ekstensi Visual Studio Code dengan Ekstensi Alat CMake

4 - Menyiapkan variabel lingkungan

  1. Konfigurasikan VCPKG_ROOT variabel lingkungan.

Buka Terminal baru di Visual Studio Code: Terminal > Terminal Baru

Jalankan perintah berikut:

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.

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

menyiapkan variabel lingkungan vcpkg

Cuplikan layar pengaturan VCPKG_ROOT dan menambahkannya ke PATH di terminal Visual Studio Code.

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.

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.

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

Nota

Mengatur variabel lingkungan menggunakan export perintah hanya memengaruhi sesi shell saat ini. Untuk membuat perubahan ini permanen di seluruh sesi, tambahkan export perintah ke skrip profil shell Anda (misalnya, ~/.bashrc atau ~/.zshrc).

export VCPKG_ROOT=/c/path/to/vcpkg
export PATH=$PATH:$VCPKG_ROOT

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

  1. Buat file manifes dan tambahkan dependensi.

Jalankan perintah berikut untuk membuat file manifes vcpkg (vcpkg.json) di akar helloworld folder:

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.

5 - Menyiapkan file proyek

  1. Membuat file CMakeLists.txt

Buat file baru bernama CMakeLists.txt di akar folder proyek dengan konten 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)

Mari kita uraikan setiap baris dalam file CMakeLists.txt:

  • 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, kesalahan akan dihasilkan.
  • project(HelloWorld): Mengatur nama proyek ke "HelloWorld."
  • find_package(fmt CONFIG REQUIRED): Mencari pustaka fmt menggunakan file konfigurasi CMake. Kata REQUIRED kunci memastikan bahwa kesalahan terjadi 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 dengan pustaka fmt. Kata PRIVATE kunci menunjukkan bahwa fmt hanya diperlukan untuk membangun HelloWorld dan tidak boleh disebarluaskan ke proyek dependen lainnya.
  1. helloworld.cpp Buat file dengan konten berikut:
#include <fmt/core.h>

int main()
{
    fmt::print("Hello World!\n");
    return 0;
}

File ini helloworld.cpp menyertakan <fmt/core.h> header untuk menggunakan pustaka fmt. Fungsi main() kemudian memanggil fmt::print() untuk menghasilkan pesan "Halo Dunia!" ke konsol.

Untuk memungkinkan sistem proyek CMake mengenali pustaka C++ yang disediakan oleh vcpkg, Anda harus menyediakan vcpkg.cmake file toolchain. Untuk mengotomatiskan ini, buat CMakePresets.json file di direktori "helloworld" dengan konten berikut:

{
  "version": 2,
  "configurePresets": [
    {
      "name": "vcpkg",
      "generator": "Ninja",
      "binaryDir": "${sourceDir}/build",
      "cacheVariables": {
        "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
      }
    }
  ]
}
  1. Buat CMakeUserPresets.json file di direktori "helloworld" dengan konten berikut:
{
  "version": 2,
  "configurePresets": [
    {
      "name": "default",
      "inherits": "vcpkg",
      "environment": {
        "VCPKG_ROOT": "<path to vcpkg>"
      }
    }
  ]
}

File CMakePresets.json ini berisi preset "vcpkg" untuk CMake dan mengatur variabel CMAKE_TOOLCHAIN_FILE. CMAKE_TOOLCHAIN_FILE memungkinkan sistem proyek CMake mengenali pustaka C++ yang disediakan oleh vcpkg. Hanya CMakePresets.json dimaksudkan untuk diperiksa ke kontrol sumber saat CMakeUserPresets.json akan digunakan secara lokal.

6 - Membangun dan menjalankan proyek

  1. Jalankan CMake: Build perintah proyek dengan menavigasi ke Palet Perintah di Lihat > Palet Perintah

Perintah pembuatan CMake di Visual Studio Code

Cuplikan layar memilih perintah build CMake di Visual Studio Code.

default Pilih preset CMake. Ini memungkinkan penggunaan toolchain vcpkg.

Memilih prasetel dalam perintah build CMake di Visual Studio Code

Cuplikan layar dari pemilihan prasetel pada perintah build CMake di Visual Studio Code.

  1. Luncurkan proyek

Jalankan program:

./build/HelloWorld.exe
./build/HelloWorld

Anda akan melihat output:

Hello World!

Langkah selanjutnya

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