Re: [Linux-programlama] GCC sorunu..

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: M.Baris Demiray (baris@labristeknoloji.com)
Date: Thu 03 Mar 2005 - 23:00:47 EET


@dortgoz wrote:
> Merhaba.

Merhaba,

>
> GCC ile bir sorunum var ve c�zemedim.
> sorunum $u; hazirladigim bir C kaynak kodunu:
> - gcc -c programim.c -o programim - ile sorunsuz sekilde derliyorum.
> derledikten sonra ./programim dedigim zaman, - Erisim Engellendi -
> hatasi cikiyor ve programi y�r�tm�yor. Ama birde C kaynak kodunu:
> - gcc programim.c -o programim - olarak derledigimde, yani -c
> parametresini eklemeyip derledigimde, programi sorunsuz y�r�t�yor.
> ve -c parametresi ile derlenen program konsolda ince,
> -c parametresi olmadan derlenen program kalin g�z�k�yor ve
> baska yerlerden aldigim derlenmis bir C programi, ki muhtemelen
> -c parametresi alarak derlenmiski, calistirmaya kalktigim zaman
> - Erisim Engellendi - diyor.

Sadece -c parametresini kullandığınız zaman bağlama işlemi yapılmaz.
Yani

gcc -c program.c -o program

dediğinizde `program' dosyasında kaynak kodda kullandığınız kütüphane
işlevlerinin sadece sembolleri vardır. Yani printf() işlevini
çağırmışsanız bu daha sonra bağlayıcının anlayacağı bir şekilde
ifade edilmiştir ama `program' dosyası printf()'in ne yaptığından
habersizdir.

Bu yüzden programınız tek bir dosyadan oluşuyorsa

gcc -o program program.c

şeklinde derlemelisiniz. Ancak bir kaç tane dosya olduğunda -c
parametresi anlamlı olacaktır. Örneğin projenizde main.c ve
yardimci.c dosyaları olduğunu, main() işlevinin main.c'de yer
aldığını ve main()'den çağırılan diğer işlevlerin yardimci.c'de
bulunduğunu varsayalım. Bu durumda main.c'yi tek başına derlemeniz
bir şey ifade etmeyeceğinden (ve yapılamayacağından) projenizi
aşağıdaki şekilde derlemelisiniz:

gcc -c main.c -o main.o
gcc -c yardimci.c -o yardimci.o
gcc -o main yardimci.o main.o

Burada oluşacak `main' dosyası sizin asıl çalışabilir programınız
olacaktır.

İyi çalışmalar.

>
> kullandigim sistem, GNU/Linux Debian 3.1 (a.k.a Sarge)
> kullandigim gcc versionu, GCC 3.3.5-1
>
> umarim yeterince acik sekilde anlatmisimdir sorunumu.
> nasil bir yol izlemem lazim, yardimci olursaniz sevinirim.
>

-- 
M.Baris Demiray

"3 yıldır İdeal Teknoloji'nin bir iş kanalı olarak 'Labris' markasıyla yürüttüğümüz çalışmalarımızda edinmiş olduğumuz başarı, 2005 yılına girerken faaliyetlerimizin bağımsız bir şirkete 'Labris Teknoloji' ismiyle taşınması kararını(spin-off) getirmiştir. Yine, birlikte başarılı projelere imza atabilmek ümidiyle."

Labris Teknoloji

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.