TeknoTR  

Geri Dön   TeknoTR > Bilgisayar > İşletim Sistemleri > Linux İşletim Sistemleri
Üye Ol SSS Sxe indir Sosyal Gruplar Takvim Resim Galerisi Etiketler Bütün Forumları okunmuş kabul et


Linux Altında C Derleyici

Linux İşletim Sistemleri bölümünde Linux Altında C Derleyici konusu , Linux altında program yazabilmek için elinizin altında bir tane text editör olmalıdır. Bu editorde yazdığınız programı, o program hangi uzantıyı gerektiriyorsa o uzantılı olacak şekilde kaydedip kullanabilirsiniz. Örneğin ben C programlama dili için Kwrite kullanıyorum. (MDK 10.1 KDE kullanıyorum) Kwrite ...

Cevapla
 
LinkBack Konu Seçenekleri
Eski 05-16-2006, 13:48   #1 (permalink)
ach
MiSaFir
 
Mesajlar: n/a

Linux Altında C Derleyici


Linux altında program yazabilmek için elinizin altında bir tane text editör olmalıdır. Bu editorde yazdığınız programı, o program hangi uzantıyı gerektiriyorsa o uzantılı olacak şekilde kaydedip kullanabilirsiniz. Örneğin ben C programlama dili için Kwrite kullanıyorum. (MDK 10.1 KDE kullanıyorum) Kwrite 'ta yazdığım kodu Dosya->Farkli Kaydet 'ten deneme.c şeklinde kaydediyorum. Bundan sonra yapılması gereken tek şey bu dosyayı bir C derleyici ile derlemek. Linux altında c programları cc (C Complier) yada gcc (GNU C Complier) ile derlenebilir. GNU C Complier'ı [Bu Linki Görüntüleyebilmeniz İçin Üye Olmanız Gerekiyor. ] adresinden temin edebilirsiniz.

GCC 'nin Kullanımı

Linux altında herhangi bir editörle yazdığınıız programınızı diyelimki deneme.c şeklinde /home/kullanci_adiniz/deneme/ dizini altında kaydettiniz. Yazdığımız programda misal şöyle olsun


Alıntı:#include <stdio.h>

main ()
{
int a;
char ch;

a=100;
ch='A';
printf("a= %d ch = %c\n",a,ch);
}

şimdi konsoldan o dizinin olduğu yere gidelim


Alıntı:# cd /home/kullanci_adiniz/deneme/

şimdi de o dizin içindeki deneme.c yi derleyelim

Alıntı:# gcc -o deneme deneme.c
bu komut satırından sonra hiçbir hata almadıysak, deneme dizini altına baktığımızda ikinci bir deneme isimli, uzantısı olmayan bir dosya görmüş oluruz. bu dosya linux altında çalıştırılabilir bir dosyadır. Az önce yazdığımız komut satırına tekrardan dönelim. şimdi orada "gcc -o deneme deneme.c" diyerek gcc yi çağırdık ve derleme sonrasında oluşacak çıktı dosyasının adınıda -o parametresi ile belirledik. Eğer sadece

Alıntı:# gcc deneme.c

diye yazmış olsaydık deneme.c dosyası gene derlenmiş olacaktı. ancak az önce elde ettiğimiz çalıştırabilir deneme dosyasının adını linux kendine göre belirleyecekti. Peki gelelim şimdi programımızı nasıl çalıştıracağımıza, çünkü program ekrana birşeyler yazdırıyordu dimi ?

Alıntı:# ./deneme
yazmamız yeterli olacaktır. linux altında tüm çalıştıralabilir dosyaları konsoldan ./dosya_adi şeklinde çalıştırabiliriz. Tabi bunu yazınca biz konsoldaki kara ekranda
a= 100 ch = A
yazsını görmüş olduk

Matematiksel Fonksiyonlar Nasıl Derlenir ?

Diyelimlki programımız şöyle olsun

Alıntı:#include <stdio.h>
#include <math.h>

main ()
{
int a,b;
char ch;

a=100;
b=sqrt(a);
ch='A';
printf("a= %d ch = %c b = %d\n",a,ch,b);
}

bu programı

Alıntı:# gcc -o deneme deneme.c

şeklinde derlemeye kalkarsak aşağıdaki gibi bir hata yeriz:

/home/kullanici_adiniz/tmp/ccEhkAmZ.o(.text+0x31): In function `main':
: undefined reference to `sqrt'
collect2: ld returned 1 exit status

bu hatadan kurtulmak için derleme sırasında "-lm" parametresini kullanmamız gerekmektedir. -lm derleme sırasında matematiksel kütüphaneleri koda eklemektedir. yani komut satırı şu şekilde olacak

Alıntı:# gcc -lm -o deneme deneme.c
Eğer yazdığımız koda eklenecek olan kitaplıklar ve kütüphaneler sistemde standart olan yerlerde mevcut değilse ne olacak ?

Evet mesela diyelim ki /usr/library diye bir dizinimiz olsun. Burada bizim işimize yarayan kütüphaneler olsun. kaynak kodumuzda buradaki kütüphanalerden birini çağıralım , misal kaynak kodumuz şöyle olsun

Alıntı:include <stdio.h>
#include <topla.h> /* /usr/library dizininde olan bize ait özel bir dosya olsun tabi sadece bir örnek */
main ()
{
int a,b,c;
char ch;

a=100;
b=20;
c=topla(a,b);
ch='A';
printf("a= %d ch = %c c = %d\n",a,ch,c);
}

şimdi bu program nasıl derlenecek? işte böyle ..

Alıntı:# gcc -o deneme deneme.c -I/usr/library -Itopla
böylelikle derleyiciye topla.h 'ı /usr/library dizinin içinde aramasını söyledik. eğer böyle farklı dizinlerde farklı dosyaları eklemek zorunda kalırsanız her bir dosya için -I dizin1 -I dizin2 -Idosya_adi -Idosya_adi2 şeklinde gcc komut satırına eklemelisiniz.

Evet şimdilik bu kadar eğer yanlış varsa arkadaşlar düzeltsin.

Buarada birşey daha demek istiyorum. GCC ile extradan şeyler bilen arkadaşlar varsa onlarda bu yazı altına bildiklerini lütfen eklesin. Baya bir kişinin işine yaracak bir yazı olacaktır eminin....
 
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
Eski 05-28-2006, 01:21   #2 (permalink)
Administrator
 
AraneL - ait Avatar
 
Giriş: 18-05-2006
Mesajlar: 2.870
Rep Puanı: 5733
AraneL Rütbe Artı +10AraneL Rütbe Artı +10AraneL Rütbe Artı +10AraneL Rütbe Artı +10AraneL Rütbe Artı +10AraneL Rütbe Artı +10AraneL Rütbe Artı +10AraneL Rütbe Artı +10AraneL Rütbe Artı +10AraneL Rütbe Artı +10AraneL Rütbe Artı +10
Rep Gücü: 500
E-Güven: (6/100)


emegine saglık
__________________

AraneL isimli üyemiz çevrimdışıdır. (Offline)  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
Eski 05-29-2006, 21:31   #3 (permalink)
Aktif Üye
 
Bora__Bota - ait Avatar
 
Giriş: 17-05-2006
Mesajlar: 539
Rep Puanı: 621
Bora__Bota Rütbe Artı +2Bora__Bota Rütbe Artı +2Bora__Bota Rütbe Artı +2Bora__Bota Rütbe Artı +2Bora__Bota Rütbe Artı +2Bora__Bota Rütbe Artı +2
Rep Gücü: 37
E-Güven: (0/0)


Teşekkürler...
Bora__Bota isimli üyemiz çevrimdışıdır. (Offline)  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
Cevapla

Konu Seçenekleri

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık
Gitmek istediğiniz klasörü seçiniz


Şu an saat 08:09 .
Tarih 09-08-2008


Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd
Türkçe Çeviri : ach

eXTReMe Tracker


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192