Re: [Linux-programlama] GCC sorunu..

---------

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

From: @dortgoz
Date: Thu 03 Mar 2005 - 23:11:48 EET


M.Baris Demiray wrote:

>
> @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

@ bu sekilde derledigimde sorun olmuyor zaten ve dedigim gibi
konsolda kalin bir sekilde gözüküyor.

$öyle söyliyim ozaman, tamam bu sorunu bir kenara aldik.
peki baskasinin derlemis oldugu uygulamayi yürütmeye calistigim
zaman, neden - Erisim Engellendi - diyor?

- Erisim Engellendi - hatasini veren uygulamari, hem normal user
hemde super user (root) olarak yürütmeyi denedim, degisen birsey
olmadi.

>
> 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.
>>
>
>_______________________________________________
>Linux-programlama mailing list
>Linux-programlama@liste.linux.org.tr
>http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>
>

_______________________________________________
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.