Temel C Programlama -7- C Geliştirme Aşamaları ve Derleyici Kurulumu

C dilinde program yazmaya başlamadan önce bu yazdığımız programın hangi süreçlerden geçerek program haline geldiğini öğrenmemiz gerekir. Biz alt seviye programcı olduğumuz için işin derinini öğrenmemiz her zaman şarttır. O yüzden temel seviyede bile işi basitleştirme taraftarı değiliz. O yüzden okurun anlayışla karşılamasını bekliyoruz.

C dilinde yazılan programın program haline gelme süreci dört ana başlıkta inceleneblir. Bunlar önişleme, derleyici, bağlayıcı ve yükleyici işlemleridir.

Program Yazma Sürecinde, biz metin editörü vasıtasıyla boş bir deftere program kodlarını program bilgimiz vasıtasıyla yazarız. İstenirse bu metin editörü Notepad gibi basit bir program da olabilir. Burada programı klavye ile yazarız ve metin editöründe .c uzantılı olarak kaydederiz.

Önişleme Sürecinde, program yazma sürecinde yaptığımız ön işlemci direktifleri işlenir ve kod metin bazında bu şekilde hazırlanır. Örneğin #define ile yaptığımız bir tanımlama aslında C diline ait bir komut değildir. Bu önişleme komutu olarak tanımladığımız değeri bulup yerine yapıştırmadan öte değildir. Bu durumda ön işlemci bizim yazdığımız program metni üzerinde değişiklikler yapmaktadır. Önişlemci yönergeleri # işareti ile belirtilmektedir. Örneğin #include “lcd.h” dediğimizde bunu önişlemci işlemektedir. Önişlemci yönergelerini biraz ileri seviye bir konu olduğu için ileride daha ayrıntılı olarak sizlere anlatacağız.

Derleme Sürecinde, önişleme sürecinden geçmiş program kodu assembly diline çevrilir. Burada bu kodu assembly diline çevirecek programa derleyici adı verilir. C ile program yazmanın en önemli aşamasını gerçekleştiren program derleyicidir. Derleyici olmadan C dilinde yazdığımız programların bir anlamı olmayacaktır. Örneğin yeni üretilmiş bir işlemci için C programı yazmamız gerektiğinde öncelikle bunun için birinin derleyici yazması gereklidir. C dili herhangi bir program halinde değildir. Kitapta yer alan dilin özelliklerini ve komutlarını donanımın anlayacağı dile çevirecek bir program yapmak elbette en zor işlerden biridir. Üstelik bu derleyici programın donanım için hızlı ve verimli bir kod üretmesi gereklidir. C dili Assembly diline çevrilirken belli kural ve ilkeler dışında her komutun assembly karşılığı kullanılır ve kodlar okundukça bu assembly komutları dosyaya eklenir. Örneğin “+” operatörünü gördüğü zaman “ADD” komutunu ekler veya “++” komutunu gördüğü zaman “INC” komutunu ekler. Bu görülen operatörlerin makine dilinde bir komut olarak karşılığı bulunmaktadır ve bu her makine için farklıdır. Fakat C dili büyük ölçüde taşınabilir bir dil olduğu için farklı derleyicilerde aynı C kodunu derletip farklı donanımlar için program yazabiliriz.

Bağlama süreci, ise derleme işleminden sonra derlenmiş halde duran kütüphanelerle program arasında bağ kurma sürecidir. Kullandığımız fonksiyonların kodu başka bir yerde yer aldığında, başka bir kütüphane kullandığımızda bu parçalar alınır ve bizim programımıza eklenir.

Yükleme süreci, programın çalışabilir olmasından sonra belleğe yüklenme işlemidir.

Bu aşamaların hepsini program yapsa da biz bazen bu üretilen dosyaları inceleme ihtiyacı duyarız. Gömülü sistemler üzerinde çalışıyorsak bu ihtiyaç daha da artmaktadır. Örneğin C dilinde program yazsak da bunun Assembly haline çevrilmiş versiyonunu görme ihtiyacı duyabiliriz. Çünkü derleyiciye her zaman en iyi kodu üretme konusunda güvenemeyiz.

Derleyici Kurulumu

Öncelikle derleyici ile IDE arasındaki farkı bilmemiz gereklidir. IDE metin editörü, hata ayıklayıcı, programlayıcı gibi araçları içerisinde bulunduran bir geliştirme ortamına verilen isimdir. Visual Studio ve Eclipse IDE olarak en meşhurlarıdır. Derleyiciler ise platforma veya üreticiye göre değişiklik gösterebilir. Örneğin Visual Studio yüklediğinizde Microsoft’un C/C++ derleyicisini kullanırsınız. Eğer Eclipse kullanmak istiyorsanız GCC derleyicilerin Windows sürümlerini kullanırsınız. Biz masaüstünde C programlama için Eclipse IDE ve MinGW derleyicisini kullanacağız.

Şimdi Eclipse’nin nasıl kurulacağından size kısaca bahsedelim.

Ecipse’nin sitesine giriyoruz ve Eclipse C/C++ sürümünü indiriyoruz. Aşağıdaki bağlantıdan bunu indirip kurabilirsiniz.

https://www.eclipse.org/downloads/packages/release/2018-12/r/eclipse-ide-cc-developers

Biz Eclipse’yi yüklediğimizde açıp hemen kod yazmaya başlayamayız. Eclipse içerisinde derleyici program ile beraber gelmemektedir. O yüzden derleyiciyi ayrıca indirip kurmamız gereklidir.

Windows için GNU derleyici kolleksiyonu arasında MinGW ve Cygwin ikilisini görmekteyiz. Biz daha basit bir yapıda olan MinGW’yi indirip kuracağız. Bunun için aşağıdaki bağlantıya tıklıyoruz.

https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe/

Burada MinGW kurulum programını yüklemiş oluyoruz. Bir sonraki adım ise açılan MinGW Installation Manager’den C ile ilgili olan derleyicileri seçip kurmaktır.

Buradaki C Compiler kısımlarının hepsinin işaretli olduğuna emin olmak lazımdır. Çok uğraşmak istemiyorsanız Visual Studio indirebilirsiniz orada otomatik olarak derleyiciler mevcuttur. Eclipse geliştirme ortamı açık kaynaklı olduğu için pek çok firma Eclipse’yi temel alan geliştirme ortamları hazırlamaktadır. STM32’nin TrueStudio gibi geliştirme ortamlarına hazırlık için Eclipse’ye alışmamız iyi olur. Visual Studio tabanlı Atmel Studio için de Visual Studio’yu öğrenmemiz iyi olur. Biz yaygınlığı daha fazla olan Eclipse’yi kullanma taraftarıyız.

Şimdi Eclipse’de yeni bir proje oluşturmayı anlatalım. Eclipse’yi açtığımızda üst taraftaki menüden File/New/C/C++ Project sekmesini seçiyoruz.

Burada C projesini seçtikten sonra “Toolchain” kısmından MinGW GCC derleyicisini seçiyoruz. MinGW yüklemeden burada bu gözükmeyecektir.

Burada öncelikle bizim için hazır bir proje ortaya çıkması için “Hello World ANSI C Project” sekmesini seçmemiz gerekli. Sonra sağ taraftan MinGW GCC derleyicisini seçiyoruz. Projeyi oluşturduktan sonra hazır bir “Merhaba Dünya” kodu karşımıza geliyor. Bunu çalıştırmak için yukarıda yer alan üç düğmeyi kullanacağız.

Burada yer alan birinci tuş “Build” yani derleme tuşudur. Yazdığımız programı önce derlememiz gerekir. İkinci tuş ise çalıştırma tuşudur. Programda hata ayıklama ve çalıştırma işlemini burada yaparız. Üçüncüsü ise çalıştırma veya hata ayıklamayı durdurma tuşudur. Programı çalıştırmak için öncelikle bir çalıştırma ayarı yapmamız gereklidir. Onun için sağ taraftaki açılır kutuya tıklıyoruz ve “New Launch Configuration…” seçeneğini seçiyoruz.

Burada “Run” seçeneğini seçip dosyayı belirtikten sonra çalıştırılabilir .exe dosyasını program debug klasöründe üretiyor. Projenin hangi klasörde olduğunu ise başta projeyi oluştururken belirliyoruz. Eclipse’nin güzel bir yanı olarak dahili konsol yer almakta. Yani konsolda gördüğümüz çıkışları aşağıda yer alan konsol ekranından görebiliriz. Eclipse’yi beğenmeyenler Visual Studio yükleyip kullanabilir. Hatta çoğu eğitimde olduğu gibi Dev-C++ da kullanabilirsiniz. Bunların çok farkı yoktur. Fakat ben Dev-C++’yı pek beğenmediğim için daha profesyonel işlere yönelik olan Eclipse’yi tercih ediyorum.

Yazının devamında derleyici veya geliştirme ortamından bağımsız olarak konumuza devam edeceğiz.

Last updated