B.1.2 GCC Komut Satırı Seçenekleri
Bu kısımda, GCC’nin sadece yaygın olarak kullanılan bazı komut satırı
seçenekleri listelenmiştir. Daha detaylı bilgi için,
GCC Kullanımı Dokümantasyonu
bakmanız önerilir.
Önişleme Seçenekleri
-Disim=tanimopt |
Önişleme başlamadan önce isim makrosu
tanim değerine tanımlanır. Eğer =tanim
kısmı verilmezse, makronun değeri 1 olur. |
-Uisim |
GCC tarafından varsayılan veya -D seçeneği ile
komut satırında tanımlanmış bir makronun tanımını kaldırır. |
-Idizin |
Başlık dosyaları için aranacak standart dizinlere yeni dizin(ler) ekler. |
-iquote dizin |
Yukarıda anlatılan -I seçeneği gibi, ancak bir
#include emrinde
<> arasına yazılmış dosyalar için değil de
"" içine yazılmış dosyalar için. |
-isystem dizin |
Standart sistem başlık dosyalarının aranacağı dizin listesinin
önüne yeni dizin(ler) ekler. |
-isysroot dizin |
Başlık dosyalarının aranacağı dizinlerin önüne bir üstdizin ekler. |
Derleme Komut Örnekleri
gcc prog1.c prog2.c |
İki kaynak kod dosyası derlenir ve tek bir a.out
dosyasında bağlanır. Kaynak dosyalarının sadece bir tanesinde
main fonksiyonu tanımlı olmalıdır. Çok fazla kaynak dosyadan
oluşan daha büyük projeler için Kısım B.4’de anlatılan
make komutunun kullanılması önerilir. |
gcc -std=c17 prog.c |
Derlenecek programın C’nin ISO/IEC 9899:2018 diyalekti ne
uygun olduğu varsayılarak derleme yapılır. Diğer diyalektler arasında,
c90 , c99 , c11 , gnu90 ,
gnu99 , gnu11 ve gnu17 (varsayılan)
bulunmaktadır. |
gcc -std=c17 -pedantic prog.c |
Yukarıdakine benzer bir şekilde derleme yapılır, ancak
GCC’nin ISO/IEC 9899:2018 C Standardına yaptığı bazı eklemeler için
uyarılar verilir. -pedantic-errors seçeneği kullanıldığında
bu uyarılar hata olarak değerlendirilir. |
gcc -trigraphs prog.c |
Kaynak kodda Kısım 8.3’te anlatılan üçlü
karakterleri dikkate alır. |
gcc -Wall prog.c |
Programı derlerken tespit edilen bazı olumsuzluklar için daha çok
uyarı getirilmesini sağlar. Bu uyarıları ayrıca,
-Wuyarı_türü ve -Wno-uyarı_türü
seçenekleri ile daha detaylı bir şekilde kontrol etmeniz olasıdır.
Düzgün, fakat sorun yarabilecek bazı programlama yöntemleri
konusunda daha da fazla uyarı almak için -Wextra
seçeneği; yeni ve eski C dili kullanımları arasında
farklılık oluşturabilen yerlerde ek uyarı verilmesi için
-Wtraditional seçeneği kullanılabilir.
Son olarak, -Werror seçeneği ile
tüm uyarıların hata olarak değerlendirilmesi ve derlemenin sonlandırılması
sağlanabilir. |
gcc -O prog.c |
Derleme süresini uzatarak oluşan kod üzerinde eniyileme yapılmasını
sağlar. Bu seçeneğin arkasına 0 ile 3 arasında
değerler vererek eniyilemenin seviyesi artırılabilir.
-O seçeneği tek başına kullanıldığında
-O1 seçeneğine eşdeğerdir ve belli miktarda, ama aşırı olmayan
eniyileme yapılmasını sağlar. -O seçeneği hiç kullanılmadığı
zaman -O0 seçeneğine eşdeğerdir ve herhangi bir
eniyilemenin yapılmaması gerektiği anlamına gelir;
bu şekilde derleme süresi kısa olur.
Diğer seçenekler arasında olan -Og olası
hata giderme süreci için daha kolay anlaşılır kod üretir,
-Os ise üretilen kodun kısa olmasını sağlar
(-O2 ’ye yakın bir eniyileme seçeneğidir).
Tüm bunların yanında, -feniyileme_türü şeklinde
onlarca seçenek vardır; bunlar sayesinde tek tek hangi tür eniyilemenin
yapılması veya yapılmaması gerektiği belirtilebilir.
Son olarak, belli bir işlemci ailesi için özel eniyilemelerin
yapılmasını sağlayan
-mcpu=işlemci_ailesi ,
-march=işlemci_ailesi ve
-mtune=işlemci_ailesi seçenekleri bulunmaktadır. |
gcc -pg prog.c |
Analiz programına (gprof ) uygun profil bilgilerini yazmak
için ekstra kod oluşturur. Bu seçenek hem derleme, hem de bağlama sırasında
kullanılmalıdır. Ortaya çıkan yürütülebilir dosya (a.out )
çalıştırıldığında, bulunduğumuz dizinde gmon.out isimli bir
dosya oluşturulur. Dosyanın içeriğini (yani, programdaki hangi fonksiyon
hangi fonksiyonu kaç kez çağırmıştır bilgisini)
görüntülemek için gprof komutu kullanılır. |
Bağlama Komut Örnekleri
gcc -s prog.c |
Yürütülebilir dosyadan tüm simge tablosunu ve yer değiştirme bilgilerini
kaldırır ve bu şekilde daha küçük bir yürütülebilir dosya (a.out )
oluşturur. Hata giderme işlemi tamamlandıktan sonra, üretim ortamı için
hazırlanan programlar için derleme sırasında bu seçeneğin kullanılması
önerilir. |
Ortam Değişkenleri
Burada verilen liste önemli sayılabilecek bazı ortam değişkenlerini
kapsamaktadır. Daha detaylı bilgi için
ilgili dokümana
bakınız.
CPATH C_INCLUDE_PATH |
Komut satırında -Idizin ile gösterilenlerden sonra,
başlık dosyalarının aranacağı dizinlerin : ile ayrılmış bir
listesi. |
COMPILER_PATH |
GCC’nin kendi alt program dosyalarını aramak için :
ile ayrılmış dizin listesi. |
GCC_EXEC_PREFIX |
GCC’nin alt programlarının adlarını çağırırken ekleyeceği bir önek.
/ ile bitebilir. |
LIBRARY_PATH |
Komut satırında -Ldizin ile belirtilen dizinlerden sonra,
bağlayıcı ve kütüphane dosyalarının aranacağı dizinlerin : ile
ayrılmış bir listesi. |
LD_LIBRARY_PATH |
Paylaşılan kütüphane dosyalarını aramak için : ile ayrılmış
dizin listesi. Bu ortam değişkeni, GCC tarafından değil, paylaşılan
kütüphanelere devingen olarak bağlanan yürütülebilir dosyalar tarafından
okunur. Kısım B.3’e bakınız. |
TMPDIR |
Derleme aşamaları sırasında oluşan geçici dosyalar için kullanılacak
dizin. |