Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
- Visual Studio Code
- Pengkompilasi C++
- Windows 7 atau yang lebih baru
- Git
- Ninja
1 - Menyiapkan vcpkg
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.gitRegistri 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.
Jalankan skrip bootstrap
Sekarang setelah Anda mengkloning repositori vcpkg, navigasikan ke
vcpkgdirektori dan jalankan skrip bootstrap:cd vcpkg && bootstrap-vcpkg.batcd vcpkg; .\bootstrap-vcpkg.batcd vcpkg && ./bootstrap-vcpkg.shSkrip 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.
Cuplikan layar tampilan Ekstensi Visual Studio Code dengan Ekstensi C++
Instal Ekstensi Alat CMake. Ini memungkinkan dukungan CMake di Visual Studio Code.
Cuplikan layar tampilan Ekstensi Visual Studio Code dengan Ekstensi Alat CMake
4 - Menyiapkan variabel lingkungan
- Konfigurasikan
VCPKG_ROOTvariabel 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"
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.
- 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
- 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 pustakafmtmenggunakan file konfigurasi CMake. KataREQUIREDkunci memastikan bahwa kesalahan terjadi jika paket tidak ditemukan. -
add_executable(HelloWorld helloworld.cpp): Menambahkan target yang dapat dieksekusi bernama "HelloWorld," yang dibangun dari filehelloworld.cppsumber . -
target_link_libraries(HelloWorld PRIVATE fmt::fmt): Menentukan bahwa executableHelloWorldharus ditautkan dengan pustakafmt. KataPRIVATEkunci menunjukkan bahwafmthanya diperlukan untuk membangunHelloWorlddan tidak boleh disebarluaskan ke proyek dependen lainnya.
-
helloworld.cppBuat 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"
}
}
]
}
- Buat
CMakeUserPresets.jsonfile 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
- Jalankan
CMake: Buildperintah proyek dengan menavigasi ke Palet Perintah di Lihat > Palet Perintah
Cuplikan layar memilih perintah build CMake di Visual Studio Code.
default Pilih preset CMake. Ini memungkinkan penggunaan toolchain vcpkg.
Cuplikan layar dari pemilihan prasetel pada perintah build CMake di Visual Studio Code.
- 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: