Arduino “exit status 1” hatası, tek başına kök nedeni göstermez. Bu ifade, derleme veya yükleme işleminin başarısız bittiğini bildiren genel bir sonuç satırıdır. Asıl açıklamayı bulmak için hata konsolunda bu satırdan önce görünen ilk ayrıntılı hata mesajını incelemelisin.
Önce işlemin hangi aşamada durduğunu ayır: Kod derlenemiyorsa sözdizimi, eksik kütüphane veya tanımsız ad gibi bir sorun vardır. Derleme tamamlandığı hâlde karta gönderim başarısız oluyorsa kart seçimi, port, bağlantı veya yükleme aracıyla ilgili başka bir aşamayı kontrol etmelisin.
exit status 1 neden değil, sonuç bildirimidir
exit status 1 satırını bir teşhis cümlesi değil, hata raporunun son özeti gibi düşün. Derleyici, kodu makine tarafından çalıştırılabilir hâle getiremediğinde daha önce hangi satırda ve neden durduğunu açıklar. Örneğin eksik bir noktalı virgül, bulunamayan bir kütüphane ya da tanımlanmamış bir işlev, en alttaki genel hata satırından önce yer alabilir.
Derleme hatası ile karta yükleme hatasını ayır
Derleme hatasında sorun bilgisayarda kodun işlenmesi sırasında ortaya çıkar. Bu durumda kartın USB bağlantısını değiştirmek veya portu yeniden seçmek genellikle ilk adım değildir. Önce hata mesajında belirtilen dosya, satır ve kod yapısı incelenir.
Yükleme hatasında kod derlenmiş, fakat hazırlanan program karta gönderilirken işlem tamamlanamamıştır. Bu aşamada seçili kart, portun kullanılabilirliği, kablo bağlantısı veya karta ait yükleme süreci incelenir. Ayrıntılı çıktı seçeneği, derleme ve yükleme aşamalarını birbirinden ayıracak daha fazla bilgi sağlayabilir.
İlk açıklayıcı satırı bulmak için adım adım teşhis akışı

Hata mesajını sondan başa doğru değil, ilk anlamlı açıklamadan başlayarak oku. Aşağıdaki sıra, gereksiz değişiklikler yapmadan sorunun kaynağını daraltmana yardımcı olur.
- Aynı işlemi yeniden çalıştır ve oluşan hata çıktısını baştan sona görüntüle.
- Ayrıntılı çıktı seçeneğini açarak derleme veya yükleme aşamasına ait daha fazla bilgi göster.
- Çıktıda görünen ilk dosya adı, satır numarası ve açıklayıcı hata ifadesini bul. Varsa en üstteki anlamlı hata, sondaki
exit status 1satırından daha değerlidir. - İşlemin derleme sırasında mı, yoksa kod karta gönderilirken mi durduğunu belirle.
- Yalnızca bir değişiklik yap, aynı işlemi yeniden dene ve yeni çıktıyı önceki sonuçla karşılaştır.
Aşağıdaki satırlar kısa ve temsilî örneklerdir. Gerçek metin, kullanılan IDE, derleyici ve kart çekirdeğine göre değişebilir; teşhis için hata mesajının açıklama bölümüne odaklanmalısın.
| Hata türü / örnek | Kontrol edilecek yer | Uygulanacak çözüm biçimi |
|---|---|---|
Derleme: undefined reference to 'setup'exit status 1 |
setup() ve loop() işlevleri |
Eksik işlevi ekle, işlev adlarının yazımını kontrol et ve yeniden derle. |
Derleme: fatal error: Sensor.h: No such file or directory |
#include satırı ve kütüphane adı |
Dosya adının doğru yazıldığını ve gerekli kütüphanenin kullanılabilir olduğunu kontrol et. |
Derleme: expected ',' or ';' before ':' token |
Mesajda gösterilen satırın sonundaki noktalama işareti | Yanlış kullanılan : işaretini, gereken yerde ; ile düzelt. |
| Yükleme: karta veya platforma ilişkin hata | Seçili kart tanımı ve işlemci seçimi | Seçimin fiziksel kartla eşleştiğini ve ilgili kart bileşenlerinin kullanılabilir olduğunu kontrol et. |
| Yükleme: porta erişilemiyor veya port kullanılıyor | Bağlantı, seçili port ve portu kullanan diğer uygulamalar | Portu kullanan uygulamaları kapat, bağlantıyı kontrol et ve işlemi yeniden dene. |
Bir düzeltmeden sonra yeniden dene
Eksik setup() hatası için çalışır bir temel örnek şöyledir:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Arduino çalışıyor");
delay(1000);
}
Kod doğru biçimde derlenip karta yüklendiğinde seri iletişim ekranında şu metin tekrar tekrar görünür:
Arduino çalışıyor
Arduino çalışıyor
Bu yaklaşım, hata mesajını tek parça olarak ezberlemek yerine neden ve sonuç ilişkisi içinde çözümlemeyi gerektirir. Bu beceriyi dilden bağımsız olarak geliştirmek için Algoritmik Düşünme Testi üzerinden farklı problem çözme örnekleri de inceleyebilirsin.
Sözdizimi hataları: eksik setup() ve noktalı virgül
exit status 1 satırı tek başına hatanın kök nedenini göstermez. Asıl açıklama, hata çıktısında bu satırdan önce yer alan ilk ayrıntılı mesajda aranmalıdır. Temsilî hata mesajları kullanılan geliştirme ortamına ve sürüme göre değişebilir.
Arduino skeçlerinde setup() işlevi başlangıç ayarlarının bir kez yapılmasını, loop() işlevi ise programın tekrar eden çalışma bölümünü temsil eder. setup() eksikse derleyici ya da bağlayıcı, bu işlevi bulamadığını belirten bir hata üretebilir. Böyle bir durumda süslü parantezlerin doğru yerde olup olmadığını ve işlev adlarının eksiksiz yazıldığını kontrol et.
Noktalı virgül hatası ise çoğunlukla değişken tanımlarında veya komutların sonunda görülür. Örneğin aşağıdaki satırda noktalı virgül eksiktir:
int sayac = 0
void setup() {
}
Derleyici bazen hatayı eksik noktalı virgülün bulunduğu satırda değil, sonraki satırdaki void kelimesinde gösterebilir. Bu nedenle işaretlenen satırın hemen üstünü de kontrol et. Düzeltilmiş kısa bir örnek şöyledir:
int sayac = 0;
void setup() {
Serial.begin(9600);
Serial.println("Hazir");
}
void loop() {
}
Bu kod derlendiğinde ve seri çıktı ekranı uygun iletişim hızıyla açıldığında beklenen çıktı Hazir olur. loop() işlevinin boş bırakılması, bu örnekte tekrar edilecek bir işlem olmadığı anlamına gelir.
Eksik kütüphane hatasını include satırından teşhis et

fatal error: SensorLib.h: No such file or directory gibi bir mesaj, sorunun derleme aşamasında ortaya çıktığını gösterir. Kod karta yüklenmeden önce, #include satırında belirtilen dosyanın bulunamadığı anlaşılır. Bu durumda kart seçimi veya port bağlantısı üzerinde değişiklik yapmak, eksik dosya sorununu doğrudan çözmez.
İlk kontrol noktası, hata mesajında görünen dosya adıdır. SensorLib.h ifadesini kod içindeki #include satırıyla karşılaştır. Yazım hatası, dosya uzantısının eksik olması veya büyük ve küçük harf farkı derleyicinin dosyayı bulamamasına yol açabilir. Ardından ilgili kütüphanenin kullanılan geliştirme ortamında erişilebilir olup olmadığını kontrol et. Kütüphane başka başlık dosyalarına ya da bağımlılıklara ihtiyaç duyuyorsa bunların da erişilebilir olması gerekir.
Hızlı bir teşhis için aşağıdaki listeyi kullanabilirsin:
| Hata türü | Kontrol edilecek yer | Uygulanacak çözüm biçimi |
|---|---|---|
Eksik setup() |
İşlev adı, süslü parantezler ve skeç yapısı | setup() işlevini doğru biçimde ekle ve parantezleri eşleştir. |
| Noktalı virgül eksikliği | Hata satırının bir önceki satırı | Değişken tanımı veya komut sonuna ; ekle. |
| Eksik kütüphane | #include satırındaki dosya adı ve uzantı |
Yazımı, dosyanın erişilebilirliğini ve gerekli bağımlılıkları kontrol et. |
Yanlış kart seçimini nasıl teşhis edersin?
Seçilen kart hedefi, Arduino IDE'nin kodu hangi platform için derleyeceğini ve yükleme sırasında hangi yöntemi kullanacağını belirler. Gerçek kartla bu hedef uyuşmadığında, kodda belirgin bir hata yokken derleme veya yükleme aşamasında uyumsuzluk görülebilir. Bu nedenle exit status 1 satırını tek başına yorumlamak yerine kart hedefini de kontrol et.
Teşhis için şu sırayı izle:
- Fiziksel kartın üzerindeki model bilgisini kontrol et.
- IDE'de seçili kart hedefini bu bilgiyle karşılaştır.
- İşlemci veya bootloader seçeneği görünüyorsa yalnızca ilgili kartın belgelerinde belirtilen seçeneği kullan.
- Seçimi düzelttikten sonra kodu yeniden derle. Derleme başarılıysa yükleme işlemini tekrar dene.
Hata mesajında platform, cihaz imzası veya yükleme aracıyla ilgili bir ifade varsa yanlış kart hedefi olasılığını değerlendir. Kartın tam modeli doğrulanmadan kesin uyumluluk kararı vermek yerine fiziksel kart bilgisi ile IDE seçimini eşleştirmek daha güvenli bir yaklaşımdır.
Port sorunlarını derleme hatasından nasıl ayırırsın?
Kodun derlenmesi, bilgisayarda yüklenebilir dosyanın oluşturulduğunu gösterir. Karta yükleme ise bu dosyanın USB veya seri bağlantı üzerinden aktarılmasıdır. Derleme başarılı olduğu hâlde hata yalnızca gönderme aşamasında çıkıyorsa, sözdizimi ve kütüphane kontrollerini baştan yapmak yerine bağlantıya odaklan.
- Yalnızca şarj için kullanılan bir kablo yerine veri aktarımını destekleyen bir USB kablosu kullan.
- Kartın bilgisayara fiziksel olarak bağlı olduğunu ve bağlantının kesilmediğini kontrol et.
- IDE'de seçili portun gerçekten Arduino kartına ait olduğundan emin ol. Kartı çıkarıp yeniden bağlamak, port listesini yeniden kontrol etmeyi kolaylaştırabilir.
- Seri izleme penceresi veya başka bir uygulamanın aynı portu kullanıp kullanmadığını kontrol et.
- Sorun devam ederse farklı bir veri kablosu ya da uygun başka bir USB bağlantı noktası dene.
| Hata türü | Kontrol edilecek yer | Uygulanacak çözüm biçimi |
|---|---|---|
| Derleme hatası | İlk ayrıntılı kod veya kütüphane satırı | Kodu ya da kütüphaneyi düzeltip yeniden derle. |
| Yanlış kart hedefi | Kart üzerindeki model ve IDE seçimi | Kart hedefini, varsa işlemci seçeneğini belgelerle eşleştir. |
| Port bağlantısı | Yükleme mesajı, port ve USB kablosu | Doğru portu, veri kablosunu ve bağlantıyı kontrol et. |
| Port meşgul | Seri izleme penceresi ve diğer uygulamalar | Portu kullanan uygulamaları kapatıp yeniden dene. |
Bu sırayı korumak, Arduino dışındaki yazılım hata ayıklama süreçlerinde de işe yarar. Benzer teşhis yaklaşımı için yazılım hata ayıklama yazılarına göz atabilirsin.
Sık Sorulan Sorular
Arduino'da exit status 1 kartın bozuk olduğunu mu gösterir?
Hayır. exit status 1, derleme veya yükleme sürecinin başarısız olduğunu bildiren genel bir sonuç satırıdır. Asıl nedeni, bu satırdan önce bulunan ilk ayrıntılı hata mesajında aramalısın.
Kod derlendiği hâlde karta yükleme neden başarısız olabilir?
Yanlış kart hedefi, yanlış port, veri aktarımını desteklemeyen kablo, kopuk bağlantı veya portu kullanan başka bir uygulama yüklemeyi engelleyebilir. Bu durumda sorun kodun derlenmesinden değil, bilgisayar ile kart arasındaki aktarım aşamasından kaynaklanır.
Kütüphane kurulu olduğu hâlde include hatası neden alınabilir?
#include satırındaki ad, kütüphanenin gerçek başlık dosyasıyla eşleşmiyor olabilir. Dosya adını, yazımını ve gerekli .h dosyasının doğru kütüphane içinde bulunup bulunmadığını kontrol et.
Yanlış noktalı virgül hatası neden başka bir satırda gösterilebilir?
Derleyici bazen eksik noktalı virgülü doğrudan eksik olduğu yerde değil, sonraki belirteçte fark eder. Bu nedenle gösterilen satırın hemen üstündeki satırı, parantezleri ve blok kapanışlarını da kontrol et.
Derleme ve yükleme aşamalarını birbirinden ayırıp ilk ayrıntılı hata satırından ilerlediğinde, exit status 1 mesajı izlenecek kontrol adımlarını gösteren bir işarete dönüşür.