Standart C Programlama Dili


C.3. CL Eniyileştirici Derleyicisinin Kullanımı

Uyarı:
Kitabın bu kısmı eski bilgiler içermektedir. Ancak, okuyucunun yararına olabileceği düşünülerek aynen korunmuştur.

Microsoft C Eniyileştirici Derleyicisinin (MS-CL) 5.10 uyarlaması, 80x8x işlemcileri ile MS-DOS ve OS/2 işletim sistemleri için amaç kod üretmede kullanılan gelişmiş bir eniyileştirici derleyicidir. 5.10 uyarlamasının 5.00 uyarlamasından tek farkı 80386 işlemcisi ile OS/2 işletim sistemini desteklemesidir. Microsoft Visual C++ paketi içinde bulunan Microsoft C Eniyileştirici Derleyicisinin 8.00 uyarlaması ise Windows ortamı ve C++ için ek olanaklar tanır.

Ancak, temel olarak, CL derleyici/bağlayıcısının kullanımı, komut satırından birtakım seçim anahtarları ile dosya isimleri belirtilmek suretiyle CL komutunun çağrılması şeklindedir. Seçeneklerin bir özeti ve çağrı örnekleri şöyledir:

C:\>CL /HELP CL seçeneklerinin bir özeti görüntülenir.

C:\>CL F1.C F1.C C kaynak dosyası derlenip SLIBCE.LIB adlı varsayılan kütüphane ile bağlanır. F1.OBJ amaç dosyası ve F1.EXE yürütülebilir program oluşturulur.

C:\>CL F1.C F2.C Yukarıda olduğu gibi, fakat ayrıca F2.C dosyası F2.OBJ içine derlenir. Yürütülebilir program F1.EXE içinde bağlanır.

C:\>CL /c F1.C Derleme yapılır, ama bağlama yapılmaz.

C:\>CL F1.OBJ Daha önce derlenmiş bulunan F1.OBJ dosyası F1.EXE içine bağlanır.

C:\>CL F1 Varsayılan dosya tipi .OBJ olduğu için, yukarıdaki ile aynı.

C:\>CL F1.C F2.C F3.OBJ F4 F1.C ve F2.C derlenip, F1.OBJ, F2.OBJ, F3.OBJ ve F4.OBJ bağlandıktan sonra F1.EXE oluşturulur.

C:\>CL *.C Bulunulan altdizin içindeki tüm C kaynak dosyaları derlenip tek bir program şeklinde bağlanır.

C:\>CL * Bulunulan altdizin içindeki tüm .OBJ amaç dosyaları bağlanır.

C:\>CL /Zi /Od F1.C Eniyilemenin engellendiği ve Codeview hata düzelticisinin kullanılabileceği şekilde F1.EXE oluşturulur.

Aşağıda derleyici seçeneklerinden bazılarının özet bir listesi bulunmaktadır:

Bellek Modeli Seçenekleri

/AS Küçük bellek modeli (varsayılan).

/AC Kısa bellek modeli.

/AM Orta bellek modeli.

/AL Büyük bellek modeli.

/AH Dev bellek modeli.

/AT Minik bellek modeli (.COM dosyası oluşur).

Eniyileme Seçenekleri

/O Eniyilemeye izin ver (/Ot ile aynı).

/Oa Başka ad vermeyi dikkate alma.

/Od Eniyilemeleri engelle (varsayılan).

/Oi Yapıiçi fonksiyonların kullanılmasına izin ver.

/Ol Döngü eniyilemelerine izin ver.

/On “Güvenilmez” eniyilemeleri engelle.

/Op Duyarlık eniyilemelerine izin ver.

/Or Satıriçi dönüşleri engelle.

/Os Kod için eniyileme yap.

/Ot Hız için eniyileme yap.

/Ox En yüksek eniyileme (/Oailt /Gs).

Kod Oluşturma Seçenekleri

/G0 8088/8086 kodu oluştur (varsayılan).

/G1 186 kodu oluştur.

/G2 286 kodu oluştur.

/G3 386 kodu oluştur.

/Gc Pascal tarzında fonksiyon çağrıları oluştur.

/Gs Yığıt kontrolü yapma.

/Gtsayı Veri boyu eşiği.

Listeleme Seçenekleri

/Fadosyaadıopt MASM için girdi olarak kullanılabilecek birleştirici dil listesi (.ASM).

/Fcdosyaadıopt Birleştirilmiş kaynak ve birleştirici dil listesi (.COD).

/Fedosyaadı Yürütülebilir dosya adı (.EXE).

/Fldosyaadıopt Amaç ve birleştirici dil listesi (.COD).

/Fmdosyaadıopt Bağlayıcı planı (.MAP).

/Fodosyaadı Amaç dosya adı (.OBJ).

/Fsdosyaadıopt Kaynak listesi (.LST).

/Sl satırgenişliği Listenin genişliğini satırgenişliğine ayarla; varsayılan değer 79’dur.

/Sp sayfaboyu Listede sayfa başına satır sayısı; varsayılan değer 63’tür.

/Ss "altbaşlık" Bir liste altbaşlığı görüntüle.

/St "başlık" Bir liste başlığı görüntüle.

Önişlemci Seçenekleri

/C Açıklamaları çıkarma.

/Disim=metinopt Kaynak programda “#define isim metin”e eşdeğerdir.

/E Önişlemci çıktısını stdout’a gönder.

/EP Önişlemci çıktısını stdout’a, “#line” emirleri olmadan, gönder.

/Iisim #include işlemi için ek altdizin.

/P Önişlemci çıktısını dosyaya gönder; dosya tipi .I’dir.

/Uisim Önceden tanımlanmış makronun tanımını kaldır.

/u Önceden tanımlanmış bütün makroların tanımını kaldır.

/X “Standart yerleri” dikkate alma.

Dil Seçenekleri

/Za Dildeki genişletmeleri engelle (sadece C Standardını kullan).

/Zd Satır numarası bilgisi.

/Ze Dildeki genişletmelere izin ver (varsayılan).

/Zg Fonksiyon prototipleri oluştur.

/Zi Simgesel hata düzeltme bilgileri.

/Zl .OBJ içindeki varsayılan kütüphane bilgisini kaldır.

/Zpn Yapıları n-baytlık sınırlar içine paketle.

/Zs Sadece sözdizim kontrolü yap.

Bağlama Seçenekleri

/Fonaltılı_sayı Yığıt boyu (onaltılı gösterimde bayt sayısı).

/linkbağ_seç_ve_kütüp Bağlayıcı seçenekleri belirle.

Kayan Noktalı İşlemler İçin Kod Üretme Seçenekleri

/FPa Karşılıklı matematik kodu için çağrılar oluştur.

/FPc 80x87 benzetme kodu için çağrılar oluştur.

/FPc87 80x87 kodu için çağrılar oluştur.

/FPi Satıriçi 80x87 benzetme kodu üret (varsayılan).

/FPi87 80x87 komutları üret.

Çeşitli Seçenekler

/c Sadece derle, bağlama.

/Huzunluk Dışsal isim uzunluğu.

/J Varsayılan karakter tipi unsigned olsun.

/Tcdosya .C’si olmayan dosyayı derle.

/Vkar_dizisi Uyarlama kar_dizisini ver.

/Wdüzey Uyarı düzeyi (0<düzey≤4).