Standart C Programlama Dili


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