Topik ini menyiapkan lingkungan pengembangan C++ dari awal, mulai dari pemasangan compiler g++, pemilihan editor, sampai pengenalan CMake sebagai build system. Seluruh tahapan diakhiri dengan program percobaan kecil yang dikompilasi dan dijalankan, sehingga keberhasilan penyiapan benar-benar teruji dan bukan sekadar diasumsikan. Lingkungan yang siap menjadi bekal untuk mengikuti seluruh contoh kode pada jalur ini.
Memasang compiler g++#
Compiler menerjemahkan kode sumber menjadi kode mesin, dan compiler yang
dipakai sepanjang jalur ini adalah g++, yaitu antarmuka GCC (GNU Compiler
Collection) untuk bahasa C++. Ketika g++ dipanggil, berkas berekstensi .cpp
diperlakukan sebagai kode C++, dan pustaka standar C++ ditautkan secara
otomatis ke program hasilnya.
Pada sebagian besar distribusi Linux, g++ tidak terpasang secara bawaan, sedangkan Windows dan macOS memerlukan pemasangan terpisah melalui MSYS2 atau Homebrew. Perintah pemasangannya bergantung pada sistem operasi yang dipakai. Salah satu perintah berikut dijalankan sesuai sistem tersebut.
# tidak-dijalankan (perintah instalasi dijalankan di lingkungan pembaca masing-masing)
# Debian dan Ubuntu: paket build-essential memuat g++ dan make
sudo apt install build-essential
# Fedora: paket gcc-c++ memuat g++
sudo dnf install gcc-c++
# Windows: jalankan dari shell MSYS2 UCRT64
pacman -S mingw-w64-ucrt-x86_64-gcc
# macOS: pasang melalui Homebrew
brew install gccKeberhasilan pemasangan diperiksa dengan memanggil g++ dan meminta nomor versinya.
# periksa versi g++ yang terpasang
g++ --versiong++ (Debian 14.2.0-19) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.Keluarannya pasti berbeda antar sistem operasi dan antar versi paket. Baris pertama menjadi acuan karena memuat nomor versi g++, misalnya 14.2.0 pada contoh di atas. Angka versi ini menentukan kelengkapan dukungan fitur standar terbaru, dan rincian dukungannya dapat ditelusuri pada referensi di akhir topik.
Memilih editor#
Alat penyuntingan untuk C++ terbagi dua kelas, yaitu editor teks yang diperluas dengan ekstensi dan IDE (integrated development environment) yang lengkap. Keduanya sah, dan pilihannya mengikuti kebutuhan. Kriteria minimum yang sama perlu dipastikan untuk keduanya, yaitu penyorotan sintaks C++, penyelesaian otomatis yang membaca header pustaka standar, navigasi antarberkas, dan akses ke compiler serta debugger.
| Kriteria | Editor teks dengan ekstensi | IDE lengkap |
|---|---|---|
| Ukuran dan kecepatan buka | Ringan dan cepat | Lebih berat karena banyak fitur terpasang |
| Penyorotan dan penyelesaian C++ | Melalui ekstensi | Sudah bawaan |
| Debugger terintegrasi | Melalui ekstensi debugger | Sudah bawaan |
| Paling cocok untuk | Pembelajaran dan proyek kecil | Proyek besar dengan banyak berkas |
Apa pun pilihannya, terminal tetap diperlukan. Setiap contoh pada jalur ini dijalankan lewat perintah kompilasi yang diketik langsung, sehingga pemahaman atas proses build lebih dulu dibangun di terminal, sedangkan editor hanya bertugas menyunting kode. Kebiasaan ini juga memudahkan pemindahan ke server tanpa antarmuka grafis, karena seluruh alur kerja itu tidak bergantung pada satu IDE tertentu.
Program percobaan pertama#
Rantai alat yang terpasang diuji dengan program terkecil yang mungkin, yaitu
program yang mencetak satu baris teks. Program sekecil ini cukup untuk
menguji compiler, linker (penyambung berkas hasil kompilasi dengan
pustaka), dan pustaka standar sekaligus. Buat berkas bernama
halo.cpp di direktori kerja dengan isi berikut.
#include <iostream>
int main() {
std::cout << "Lingkungan C++ siap digunakan\n";
return 0;
}Lingkungan C++ siap digunakanKode sumber belum dapat dijalankan sebelum diterjemahkan menjadi kode mesin. Kompilasi dilakukan dengan perintah berikut.
# kompilasi halo.cpp menjadi program bernama halo
g++ halo.cpp -o haloPerintah di atas berjalan tanpa mencetak apa pun ketika berhasil, dan
keberhasilannya ditandai munculnya berkas baru bernama halo di direktori
kerja. Opsi -o halo menetapkan nama program hasil kompilasi. Setelah
berkas halo muncul, program tersebut dijalankan dengan perintah berikut.
# jalankan program hasil kompilasi
./haloLingkungan C++ siap digunakanAwalan ./ menyatakan bahwa program yang dimaksud berada di direktori kerja
saat ini. Awalan itu diperlukan karena direktori tersebut tidak termasuk
daftar pencarian perintah (PATH). Keluaran yang muncul persis seperti yang diperkirakan menandakan
compiler, linker, dan pustaka standar bekerja dengan benar. Satu hal yang
perlu digarisbawahi, yaitu kompilasi perlu diulang setiap kali kode sumber
berubah, karena berkas program tidak mengikuti isi kode sumber secara
otomatis sebagaimana bahasa skrip.
Pengenalan CMake#
Satu perintah g++ memang cukup untuk program satu berkas, tetapi proyek
nyata terdiri atas banyak berkas, bergantung pada pustaka luar, dan
memerlukan konfigurasi berbeda antara mode debug dan rilis. Mengetik ulang
perintah panjang setiap kali kode berubah memboroskan waktu dan mudah salah.
Tugas itu diserahkan pada build system, yaitu alat yang menjalankan langkah
pembangunan berdasarkan deskripsi yang ditulis sekali.
CMake adalah build system yang paling lazim dipakai untuk C++. CMake tidak
mengompilasi program secara langsung, melainkan membaca deskripsi proyek
bernama CMakeLists.txt lalu menghasilkan berkas build untuk alat yang
tersedia di sistem, misalnya Makefile untuk make. Deskripsi CMakeLists.txt
untuk program halo di atas berbentuk berikut.
# tidak-dijalankan (potongan untuk dibaca; proyek CMake dijalankan pada lingkungan yang memilikinya)
cmake_minimum_required(VERSION 3.16)
project(halo LANGUAGES CXX)
add_executable(halo halo.cpp)Baris cmake_minimum_required menetapkan versi CMake terendah yang dapat
memproses berkas tersebut, project memberi nama proyek, dan add_executable
menyatakan bahwa program bernama halo dibangun dari halo.cpp. Langkah
pembangunannya dijalankan melalui dua perintah berikut, sedangkan perintah
terakhir menjalankan program hasilnya.
# tidak-dijalankan (cmake tidak terpasang di lingkungan eksekusi contoh; langkah ini berlaku di sistem dengan CMake)
# hasilkan berkas build di direktori build
cmake -B build
# bangun program lewat berkas build yang dihasilkan
cmake --build build
# jalankan programnya
./build/haloCMake tidak selalu terpasang secara bawaan, sedangkan make lebih sering sudah tersedia di Linux dan macOS. Proyek kecil pun dapat dibangun langsung dengan make melalui berkas Makefile tulisan tangan tanpa CMake sama sekali. Pada Linux, CMake secara bawaan menghasilkan Makefile, sehingga keduanya biasanya bekerja berpasangan, dengan CMake sebagai penulis deskripsi dan make sebagai pelaksananya.
Kesalahan umum#
- Perintah g++ tidak ditemukan. Terminal menampilkan
command not foundketikag++dipanggil. Penyebabnya compiler belum terpasang, atau lokasinya belum masuk ke variabel PATH, yang sering terjadi pada Windows setelah pemasangan MSYS2. Perbaikannya berupa pemasangan paket compiler sebagaimana dijelaskan pada bagian awal, lalu pemeriksaan ulang dengang++ --version. - Hasil kompilasi bernama a.out. Perintah
g++ halo.cpptanpa opsi-omenghasilkan berkas bernamaa.out, yaitu nama bawaan yang tidak menceritakan isi programnya. Penyebabnya adalah kelalaian memberi nama keluaran. Perbaikannya berupa kebiasaan menyertakan-obeserta nama program pada setiap perintah kompilasi. - Program lama yang masih dijalankan. Perubahan pada
halo.cpptidak berpengaruh pada berkashaloyang sudah ada sebelum kompilasi ulang, sehingga program yang dijalankan memuat perilaku lama. Penyebabnya adalah anggapan bahwa kompilasi berjalan otomatis seperti pada bahasa skrip. Perbaikannya berupa pengulangan perintahg++setiap kali kode sumber berubah, atau penyerahan tugas itu pada build system seperti CMake dan make.
Ringkasan#
- Compiler g++ dipasang melalui paket sistem operasi masing-masing, dan
keberhasilannya diperiksa dengan
g++ --version. - Pola kompilasi dasarnya adalah
g++ halo.cpp -o halo, dan program hasilnya dijalankan dengan./halodari direktori kerja. - Editor teks berekstensi maupun IDE lengkap sama-sama sah, sedangkan terminal tetap diperlukan untuk memahami proses build.
- CMake membaca CMakeLists.txt lalu menghasilkan berkas build seperti Makefile, dengan make sebagai alat pelaksana yang lebih sering tersedia secara bawaan.
Referensi#
- Invoking G++ — GCC — dokumentasi resmi perintah g++, termasuk perlakuan berkas dan penautan pustaka C++.
- Introduction to the compiler, linker, and libraries — Learn C++ — penjelasan peran compiler, linker, dan pustaka dalam proses build.
- Compiler support — cppreference — daftar fitur standar C++ yang didukung setiap versi compiler.