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:
| >CL /HELP | CL seçeneklerinin bir özeti görüntülenir. |
| >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. |
| >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. |
| >CL /c F1.C | Derleme yapılır, ama bağlama yapılmaz. |
| >CL F1.OBJ | Daha önce derlenmiş bulunan F1.OBJ dosyası
F1.EXE içine bağlanır. |
| >CL F1 | Varsayılan dosya tipi .OBJ olduğu için, yukarıdaki ile aynı. |
| >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. |
| >CL *.C | Bulunulan altdizin içindeki tüm C kaynak dosyaları derlenip tek bir program şeklinde bağlanır. |
| >CL * | Bulunulan altdizin içindeki tüm .OBJ amaç dosyaları bağlanır. |
| >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
e eşdeğerdir.#define isim metin
/E Önişlemci çıktısını stdout’a gönder.
/EP Önişlemci çıktısını stdout’a,
emirleri olmadan, gönder.#line
/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 (1 ≤ düzey ≤ 4), varsayılan 1.