Bir yanlışlık yok. programın_adı yazmamın amacı eğer siz programı a değil de başka bir adla kaydederseniz, kaydettiğiniz adla bir çıkış alacağınızı belirtmek içindi.
Not:Yanlış anlaşılmaması için daha açık bir şekilde düzenledim.
Sizin cevabınızdan sonra, kendi bilgisayarımda tekrar denedim ve dediğim doğru çıkıyor.
Zaten benim demek istediğim de o ya işte.
Demişsiniz ki
"
$ gcc program_adı.c
Bu komuttan sonra dizine program_adı.out uzantılı program gelecek.
"
halbuki program adı ne olursa olsun, onu
gcc program_adi.c
şeklinde derlediğinizde derlenen dosyanın yeni adı
program_adi.out
olmaz. Standart olarak yukarıdaki şekilde derlediğiniz takdirde kaynak dosya yani .c'li dosya hangi isimle olursa olsun,
neticede çıkan dosyanın ismi,
a.out
oluyor. Ve diyelim bir tane derledikten sonra ikinci bir dosya derlerseniz, bu sefer yeni derlenen dosya eski a.out'un üzerine yazılıyor, eskisi kayboluyor.
Eğer ki derlenen dosyaya istediğiniz bir ismi vermek istiyorsanız - ki bu derlenen dosyaya kaynak dosyayla aynı ismi vermek istediğiniz zaman da
böyledir;
gcc kaynak_dosya.c -o yeni_dosya_ismi
ya da
gcc -o yeni_dosya_ismi kaynak_dosya.c
şeklinde olmalıdır. -o ifadesini kullanmadığınız takdirde, neticede bütün derlenen dosyalar a.out diye oluşacaktır.
Böylece mesela, yazdığımız bir kodu misal.c isminde kaydettik ve bunu derlemek istiyoruz. Ve diyelim ki derlenen dosyanın isminin de aynı şekilde,
kaynakla aynı yani "misal" olmasını istiyoruz. O halde yazacağımız kod şudur:
gcc misal.c -o misal
Netice oluşacak derlenmiş dosyanın ismi "misal" olur. Uzantısı da olmaz.