Kompilasi C++ di Linux: Kupas Tuntas Perintah c++ & g++

Gambaran Umum

Bagi pengembang yang beraktivitas di lingkungan terminal Linux, keberadaan perintah c++ sering kali mengundang tanya terkait keterkaitannya dengan g++. Bagian ini mengupas arsitektur perintah tersebut dalam sistem operasi, membongkar mekanismenya di balik layar, serta menyajikan panduan praktis kompilasi kode C++ mulai dari sintaks dasar hingga standar modern.

Penyiapan Toolchain Kompilasi dan Pengecekan Versi c++

Sebelum melakukan proses build, paket dasar perkakas kompilasi perlu dipasang ke dalam sistem Ubuntu. Eksekusi rangkaian instruksi apt-get update -qq && apt-get install -y build-essential guna memperbarui indeks repositori sekaligus menginstal paket kompilator esensial:

apt-get update -qq && apt-get install -y build-essential

Untuk melacak letak pasti biner eksekusi c++ yang terdaftar pada sistem berkas, jalankan perintah which c++:

which c++

Tinjau identitas versi, varian arsitektur, dan konfigurasi rilis kompilator melalui instruksi c++ --version.
⚙️ [Opsi Parameter Utama]

-o <file> : Mengatur nama biner keluaran (executable) yang dihasilkan.
-c : Menghasilkan object file (.o) murni tanpa menjalankan proses penautan (linker).
-Wall : Menyalakan seluruh notifikasi peringatan kode untuk mendeteksi kelemahan logika secara dini.
-O2 : Menerapkan optimasi performa berimbang guna mendongkrak efisiensi eksekusi biner.
-std=<standard> : Menentukan spesifikasi edisi bahasa C++ yang digunakan (misalnya c++17, c++20).
-g : Menyisipkan metadata debugging ke dalam biner demi mempermudah pelacakan galat via GDB.

c++ –version

Karakteristik berkas /usr/bin/c++ dapat diperiksa menggunakan ls -l /usr/bin/c++. Dari informasi atribut ini, tampak jelas bahwa berkas tersebut merupakan tautan simbolik (symlink) yang mengarah ke target lain:

ls -l /usr/bin/c++

Untuk mengurai rute tautan hingga ke ujung biner aslinya atau memeriksa skema alternatif sistem, panggil perintah update-alternatives --display c++ 2>/dev/null || readlink -f /usr/bin/c++. Langkah ini membuktikan bahwa eksekusi c++ pada dasarnya diarahkan langsung ke biner g++ yang terpasang di sistem:

update-alternatives –display c++ 2>/dev/null || readlink -f /usr/bin/c++

Pembuatan Kode Sumber dan Eksekusi Kompilasi Dasar

Uji coba kompilasi diawali dengan menuliskan program sederhana hello.cpp yang bertugas menampilkan pesan teks ke layar terminal:

cat « ‘EOF’ > hello.cpp
#include 
int main() {
std::cout « “Hello from Linux c++!” « std::endl;
return 0;
}
EOF

Proses pembuatan berkas biner hello dilakukan dengan menyertakan opsi -Wall serta -O2. Ketiadaan pesan peringatan di terminal menandakan berkas berhasil dikompilasi secara sempurna:

c++ -Wall -O2 -o hello hello.cpp

Jalankan program hasil kompilasi langsung dari direktori aktif untuk memverifikasi keluaran string "Hello from Linux c++!":

./hello

Penerapan Standar Modern dengan Opsi -std=c++20

Untuk memanfaatkan paradigma modern seperti std::string_view dan konstruksi constexpr, buat berkas pengujian baru bernama modern.cpp:

cat « ‘EOF’ > modern.cpp
#include 
#include <string_view>
int main() {
constexpr std::string_view msg = “Modern C++20 on Ubuntu”;
std::cout « msg « std::endl;
return 0;
}
EOF

Kompilasi berkas tersebut dengan menyertakan argumen -std=c++20 agar kompilator mengenali fitur standar C++ edisi 2020:

c++ -std=c++20 -o modern modern.cpp

Luncurkan program modern untuk mengonfirmasi bahwa baris teks "Modern C++20 on Ubuntu" diproses dan ditampilkan secara presisi:

./modern

Ulasan di atas memperjelas bahwa perintah c++ pada distro Linux turunan Debian/Ubuntu bertindak sebagai antarmuka fleksibel yang bermuara pada g++. Berbekal pemahaman parameter optimasi dan penetapan standar bahasa ini, Anda siap menyusun rantai kompilasi C++ yang efisien langsung dari terminal kerja Anda.