O eroare de compilare este o eroare în construirea unui fișier de cod de mașină pentru un limbaj de calculator. Multe limbaje de calculator își compilează codul sursă în fișiere de cod de mașină înainte ca programele să poată fi construite sau executate. Cel mai comun tip de eroare de compilare este o eroare de sintaxă de bază; o mică greșeală poate cauza multe probleme cu codul.
Cele mai comune limbaje de programare orientate pe obiecte, C++ și Java®, folosesc compilarea într-o anumită formă. Acest lucru este semnificativ diferit de limbajele interpretate, care folosesc codul sursă brut în timpul execuției pentru a executa un program. Un limbaj nu trebuie să fie în mod inerent orientat pe obiect pentru a fi compilabil; C++, de exemplu, poate fi structurat folosind programare orientată pe obiecte sau procedurală.
Cea mai frecventă cauză a erorilor de compilare este o eroare de sintaxă. Erorile de sintaxă sunt erori sub forma codului sursă brut, de obicei cauzate de unele încălcări ale principiilor limbajului informatic. Aceste erori pot fi la fel de simple ca uitarea unui punct și virgulă la sfârșitul unei linii de cod sau la fel de complexe ca inițializarea incorect a unui tablou. De obicei, nu este extrem de dificil să găsiți și să diagnosticați aceste erori; majoritatea compilatoarelor afișează erorile atunci când sunt întâlnite și nu permit formarea codului mașină până când erorile sunt remediate. Totuși, diferitele limbi folosesc compilatoare diferite, deci este posibil ca un anumit tip de eroare de compilare să fie prezent într-o limbă, dar nu și în alta.
În funcție de limba și compilatorul folosit, o eroare de compilare poate apărea tot atâtea erori. De exemplu, uitarea unui punct și virgulă la sfârșitul unei linii, atunci când o limbă o cere, poate provoca erori de analiză, deoarece compilatorul nu știe când se presupune că se va termina o anumită linie. Această eroare de analizare se poate manifesta ca multe erori de compilare, făcând să pară ca și cum există brusc probleme îngrozitoare cu codul în loc de o mică greșeală de scriere. În general, atenția atentă la respectarea regulilor unui limbaj informatic poate preveni aceste tipuri de erori. În același mod, dacă apare un atac brusc de erori de compilare, programatorul experimentat poate de obicei deduce că o singură mică greșeală a cauzat majoritatea acestora.
O concepție greșită obișnuită a programatorilor începători este că o eroare de compilare va prăbuși computerul și nu este niciodată cazul. Erorile de compilare sunt limitate la compilatoare, iar crearea codului de mașină cauzează rareori probleme pentru întregul sistem computerizat. Niciun program nu este ireproșabil, inclusiv un compilator, dar șansele de a provoca probleme unui întreg computer doar prin compilarea codului sau de a întâlni o eroare de compilare sunt extrem de mici. Odată ce toate erorile de compilare sunt remediate, sunt șanse mari ca un program să ruleze fără probleme, așa cum trebuia.