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.