GCC etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
GCC etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

gcc derleme parametreleri

11:51

Linux üzerinde kodlama yapıyor ve eclipse gibi IDE'ler kullanmıyorsanız gcc ile komut satırında fazlasıyla iç içe olunması gerekmektedir. Biz de çok kullanılan gcc parametrelerini buradan inceleyelim:


gcc <.c dosyasi>

Verilen dosyadan çalıştırılabilir (hata yoksa) bir dosya oluşturur. Aşağıda görüldüğü gibi a.out adında bir dosya oluşmuştur.


-o parametresi

gcc'nin üreteceği dosyaya isim vermek için bu parametre kullanılır. -o <isim> dediğimizde o isimde bir dosya oluşturulur.


-Wall parametresi

-Wall parametresi derleme sırasında tüm uyarıların ekrana basılmasını sağlar. Daha sağlıklı bir derleme&geliştime için kullanılabilir.


-S parametresi

-S parametresi ise gcc'nin assembly çıktısı üretmesi için kullanılır. -masm ile de assembly syntax'ının nasıl olması gerektiği belirtilir(ilgili kişiler ne anlama geldiğini anlayacaktır). Çıktıları aşağıdaki gibi farklı biçimlerde manipule edebiliriz.


-E parametresi

-E parametresi ile gcc'ye sadece preprocessor işlemi yaptırılabilir.


preprocessor işleminin kod yazılan dosyayı ne kadar büyüttüğü aşağıda görülecektir:


-c parametresi

-c parametresi ile derleme işleminin link edilmeden yapılmasını sağlayabiliriz.


 Oluşan .o dosyasını çalıştırmaya çalıştığımızda aşağıdaki gibi bir hata alırız:


-save-temps parametresi

-save-temps flag'i ile çalıştırılabilir bir dosyanın tüm aşamaları farklı uzantılarda oluşmaktadır.


-v parametresi

çalıştığınız gcc'nin versiyonunu öğrenmek isterseniz -v parametresini yalnız başına kullanılması gerekmektedir.


-v parametresi -ikinci durum-

verbose denilen derleme işlemi sırasında ayrıntılı çıktı üretmemizi sağlayan bir flagtir.


-ansi parametresi

-ansi parametresi ise C89 standarlarına göre derleme yapılmasını sağlar.


-D parametresi

-D parametresi ise preprocessor'e parametre verilmesini sağlar


-Werror parametresi

Werror tüm uyarıları error kabul eder ve derleme işleminde uyarı varsa bu nedenle derleme başarısız olmaktadır. Uyarısız(!) kodlama için kullnılır.


-l parametresi

l parametresi ile ise linker' a ek kütüphaneler parametre olarak verilebilmektedir. -l ile kütüphane ismini verirken dosya isminin başındaki lib'in kaldırıldığına dikkat edilmeli. –L seçeneği ile gcc'ye kütüphaneleri ararken hangi dizinlere bakacağı bildirilir.


-I parametresi

I parametresi ile preprocessor'e ek header dosyaların yeri verilmektedir. Header dosyalar genel olarak /usr/include içindedir. Eğer bu başlık dosyaları farklı bir yerde ise, bulundukları yerin belirtilmesi için (-I) parametresi ile yeri gösterilmelidir.

-@ parametresi

Yukarıda öğrendiğimiz tüm derleme parametrelerini bir dosyaya yazıp bunu @ile parametre olarak verebiliriz.


conio.h kutuphanesini Linux ortamında kullanma

09:23

Windows derleyicileri özgü olan conio kütüphanesinin fonksiyonlarını kullanmamız mümkün değildir. Çünkü standart bir C kütüphanesi değildir. Bu nedenle Linux'te bazı işlemler yapıldıktan sonra bu kütüphaneye özgü fonksiyonları kullanmamız mümkün olacaktır.


Aşağıda görüldüğü gibi derleme işleminde preprocessor conio.h' ı bulamadı ve hatayla karşılaştık
.

libconio isimli implementasyon açık kaynak kodlu bir projedir. Ve standart bir C fonksiyonu olmadığı için zorunlu olmadıkça bu kütüphaneyi kullanmak riskli olacaktır. libconio isimli dosyayı linux' te herhangi bir yere indiriyoruz.


sıkıştırılmış dosyayı açıyoruz ve dosyanın içine giriyoruz.


Ardından sırayla :

./configure
make
make install



 komutlarını çalıştırıyoruz ve hatasız bir şekilde kurulum gerçekleştiriliyor.


Kodumuzu tekrardan biraz güncelleyip derleme işlemini gerçekleştiriyoruz.


Burada önemli nokta gcc'ye parametre olarak  -lconio  'yu girmemiz.


Programı derleyip çalıştırırsak kodumuzun başarıyla çalıştığı görülecektir.

C'de SYSLOG mekanizmasının kullanılması

07:43

Proje gerçekleştirirken log mekanizmasının projeye konulması hem debug aşamasında hem de release aşamasında faydalı olacak bir özelliktir. Linux'te syslog mekanizmasını C'de kullanılabilecek kütüphaneler mevcuttur. syslog.h başlık dosyası dahil edildiğinde openlog,syslog,closelog,setlogmask fonksiyonları kullanılacak fonksiyonlardır.



openlog,syslog,closelog sistem log mekanızmasına mesaj göndermek için kullanılır. openlog sistem log mekanizması ile program arasında bağlantı(connection) açmak için kullanılır.




syslog log mesajı oluşturmak (generate) için kullanılır.


closelog ise sistem log mekanizması ile program arasında açılan bağlantıyı (connection) sonlandırmak için kullanılır.


setlogmask fonksiyonu adından da anlaşılacağı gibi log öncelik mask değerini set etmek için kullanılır.


/var/log altındaki syslog dosyası içine process'imizin ekleme yaptığı görülmektedir.