Ana Sayfa

C++ Derleyicileri Neden Bir PNG Dosyasını Derleyemiyor?

1 dk okuma

Bir geliştirici, yazdığını iddia ettiği basit bir C++ programını derlemekte zorluk yaşadığını belirtiyor. Programın C++ Standardı'na (ISO/IEC 14882:2003) tamamen uygun olduğunu düşünen geliştirici, üç farklı derleyici (Visual C++ 2010, g++ 4.5.2 ve Clang 3.0) tarafından reddedilmesine anlam veremiyor. Geliştirici, standardı iki kez okuduğunu ve bir hata bulamadığını iddia ediyor.

Derleme denemelerinde Visual C++ 2010, helloworld.png adlı dosyayı "tanınmayan kaynak dosyası türü" olarak işaretleyip bir uyarı veriyor ve ardından "geçersiz veya bozuk dosya" nedeniyle ölümcül bir bağlayıcı hatası (LNK1107) döndürüyor. Benzer şekilde, g++ ve Clang de dosyayı tanımadıklarını ve "dosya formatı tanınmadı" şeklinde hata mesajları veriyor. Clang, standartlara uygunluğuyla övülmesine rağmen, bu basit programı derleyemediği için geliştiricinin hayal kırıklığına uğradığı belirtiliyor.

Geliştirici, diğer C++ programlarının .cpp uzantısına sahip olduğunu fark ederek dosyasının adını helloworld.png'den helloworld.cpp'ye değiştirmeyi deniyor. Ancak bu değişiklik de sorunu çözmüyor; hatta Clang ile yapılan yeni denemede "84 uyarı ve 20 hata" ile daha da kötü sonuçlar alıyor. Geliştirici, C++ Standardı'nda önemli bir şeyi mi kaçırdığını yoksa tüm bu derleyicilerin gerçekten bozuk mu olduğunu sorguluyor. Temel sorun, kullanıcının bir C++ kaynak kodu yerine bir resim dosyasını derlemeye çalışmasıdır.

İçgörü

Bu durum, derleyicilerin dosya türlerini nasıl işlediğini ve geliştiricilerin hata mesajlarını doğru yorumlamasının önemini mizahi bir dille ortaya koyuyor.

Kaynak