Kesalahan kompilasi adalah kesalahan dalam membuat file kode mesin untuk bahasa komputer. Banyak bahasa komputer mengkompilasi kode sumbernya ke dalam file kode mesin sebelum program dapat dibangun atau dijalankan. Jenis kesalahan kompilasi yang paling umum adalah kesalahan sintaksis dasar; satu kesalahan kecil dapat menyebabkan banyak masalah dengan kode.
Bahasa pemrograman berorientasi objek yang paling umum, C++ dan Java®, menggunakan kompilasi dalam beberapa bentuk. Ini sangat berbeda dari bahasa yang ditafsirkan, yang menggunakan kode sumber mentah saat runtime untuk menjalankan program. Sebuah bahasa tidak perlu berorientasi objek secara inheren agar dapat dikompilasi; C++, misalnya, dapat disusun menggunakan pemrograman berorientasi objek atau prosedural.
Penyebab paling umum dari kesalahan kompilasi adalah kesalahan sintaks. Kesalahan sintaks adalah kesalahan dalam bentuk kode sumber mentah, biasanya disebabkan oleh beberapa pelanggaran prinsip-prinsip bahasa komputer. Kesalahan ini bisa sesederhana melupakan titik koma di akhir baris kode, atau serumit menginisialisasi array secara tidak benar. Biasanya, tidak terlalu sulit untuk menemukan dan mendiagnosis kesalahan ini; sebagian besar kompiler menunjukkan kesalahan ketika ditemui dan tidak mengizinkan pembentukan kode mesin sampai kesalahan diperbaiki. Bahasa yang berbeda menggunakan kompiler yang berbeda, jadi ada kemungkinan bahwa jenis kesalahan kompilasi tertentu mungkin ada dalam satu bahasa, tetapi tidak dalam bahasa lain.
Bergantung pada bahasa dan kompiler yang digunakan, satu kesalahan kompilasi mungkin muncul sebagai banyak kesalahan. Misalnya, melupakan titik koma di akhir baris, ketika bahasa memerlukannya, dapat menyebabkan kesalahan penguraian karena kompilator tidak tahu kapan baris tertentu seharusnya berakhir. Kesalahan penguraian ini dapat memanifestasikan dirinya sebagai banyak kesalahan kompilasi, membuatnya tampak seolah-olah ada masalah yang tiba-tiba mengerikan dengan kode alih-alih satu kesalahan ketik kecil. Secara umum, perhatian yang cermat untuk mematuhi aturan bahasa komputer dapat mencegah jenis kesalahan ini. Dengan cara yang sama, jika serangan tiba-tiba dari kesalahan kompilasi muncul, programmer yang berpengalaman biasanya dapat menyimpulkan bahwa satu kesalahan kecil menyebabkan sebagian besar dari mereka.
Kesalahpahaman umum dari programmer pemula adalah bahwa kesalahan kompilasi akan membuat komputer crash, dan ini tidak pernah terjadi. Kesalahan kompilasi terbatas pada kompiler, dan pembuatan kode mesin jarang menyebabkan masalah untuk keseluruhan sistem komputer. Tidak ada program yang sangat mudah, termasuk kompiler, tetapi kemungkinan menyebabkan masalah dengan seluruh komputer hanya dengan mengkompilasi kode atau mengalami kesalahan kompilasi sangat kecil. Setelah semua kesalahan kompilasi diperbaiki, kemungkinan besar sebuah program akan berjalan dengan lancar, seperti yang dimaksudkan.