Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Sefer Algan
Sefer Algan
http://www.seferalgan.com
İletişme geçmek için tıklayın.
71 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler:  C# / VC#/.NET Sefer Algan
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Başlangıç
Kategori : C# / VC#/.NET
Yayınlanma Tarihi : 5.5.2004
Okunma Sayısı : 58876
Yorum Sayısı : 12     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 22.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 22.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 22.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 22.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
C# Komut Satırı Derleyicisi(csc.exe) ve Parametreleri
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon

Bu yazıda sizlere önemli bir referans kaynağı olacağını düşündüğüm C# komut satırı derleyicisinin özelliklerini ve parametrelerini bir arada inceleyeceğiz. Böyle bir kaynağı oluşturmamdaki sebep C# komut derleyiciisnin kullanımı ile ilgili bana gelen onlarca e-postaya toplu olarak cevap verebilmek.

Bildiğiniz üzere .NET ortamında etkili bir şekilde geliştirme yapabilmek için Visual Studio.NET aracına ihtiyaç duyuyoruz. Ancak bu geliştirme ortamı olmadan da her tür .NET uygulamasını geliştirme imkanına sahibiz. Bu imkanı sağlayan en önemli araç elbetteki C#’ın komut satırından da çalışan csc.exe isimli derleyicisidir. C# komut satırı derleyicisi .NET Framework SDK ile birlikte ücretsiz olarak dağıtılmaktadır. Dolayısıyla .NET ortamında uygulama geliştirmek için yapmamız gereken tek şey www.microsoft.com sitesinden .NET Farmework SDK’nın son sürümünü bilgisayarınıza indirmek ve kurmaktır.

C# derleyicisi komut satırından basitçe kullanılabilmektedir. C# derleyicisini komut satırından en etkili bir şekilde kullanabilmek için işletim sisteminizde bir takım ayarlar yapmanız gerekmektedir. Örneğin siz komut satırında herhangi bir dizin içerisindeyken bile csc.exe çalıştırılabilir dosyasını çalıştırabilmeniz için csc.exe dosyasının bulunduğu dizini sistem özelliklerinde tanımlamanız gerekmektedir. Bu işlemi yapmak için kontrol panelden system ikonunu ve ardından advanced sekmesini aşağıdaki gibi seçin.



Advanced sekmesine geçtikten sonra yukarıdaki şekilde kırmızı ile işaretlenen "Environment Variables" düğmesine tıklayın.(Kullandığınız işletim sistemine göre bu butonun yeri değişik olabilir. Yukarıdaki ekran görüntüsü Windows XP işletim sistemine aittir.) Karşınıza çıkacak olan aşağıdaki ekrandan "System Variables" alanından Path seçeneğini seçin.



Path seçecenği tıklanarak açılan penceredeki Variable value alanının sonuna ; karakterini ekledikten sonra csc.exe dosyasının bulunduğu dizini yazın. csc.exe dosyası kullandığınız işletim sistemini göre değişiklik gösterebilir ancak genellikle aşağıdaki gibidir.

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322

Son dizin kullandığınız Framework’un versiyon numarasını göstermektedir.

Yukarıdaki işlemlerin doğru bir şekilde tamamlandığını kontrol etmek için komut satırını açın ve "csc" yazın. Eğer aşağıdaki hata ile karşılaşıyorsanız işlemleriniz başarı ile gerçekleşmiş demektir.



Bu hatanın sebebi csc.exe programına derlenecek dosyayı parametre olarak vermememizdir.

Derleme İşlemi

csc.exe ile en basit derleme işlemi bir girdi dosya ve çıktı dosya belirtme ile yapılır. Örneğin kaynakkod.cs dosyasını Program.exe şeklinde derlemek için aşağıdaki komutu çalıştırmamız yeterlidir.

> csc kaynakkod.cs /out:Program.exe

Eğer out parametresini kullanmayıp komutu

> csc kaynakkod.cs

şeklinde çalıştırsaydık derleme işlemi başarılı olurdu ancak oluşturulan çalıştırılabilir dosyanın adı kaynakkod.exe olurdu.


Proje Tipleri ve target parametresi

.NET ortamında birden fazla proje tipi vardır ve dolayısıyla her bir proje tipinin derleme biçimi farklıdır. Örneğin bir önceki komutumuz derlem işlemini bir konsol uygulamasına göre yapacaktır. Esasında csc.exe derleyicisnin varsayılan derleme biçimide budur. Eğer derleme işlemini farklı uygulama tipleri için yapacak olursak derşeyicinin target parametresini kullanmamız gerekir. Örneğin kaynak kodumuzu bir windows uygulaması olacak şekilde derlemek istiyorsak derleme komutu aşağıdaki gibi olmalıdır.

> csc kaynakkod.cs /target:winexe /out:Program.exe

yada

> csc kaynakkod.cs /t:winexe /out:Program.exe

Eğer kaynak kodumuzu çalıştırılabilir bir uygulama yerine bir kütüphane dosyası olacak şekilde derlemek istiyorsak aşağıdaki komutu kullanmalıyız.

> csc kaynakkod.cs /target:library /out:Program.exe


Diğer bir derleme biçimi ise modül derlemesidir. Modüller içinde manifest dediğimiz metadataları olmayan yalnızca kod bilgilerini içeren dosyalardır. Modüller çalıştırılabilir değildir. Dolayısıyla modüller ancak manifest bilgisi olan başka bir derlenmiş kütüphaneye eklenmek için kullanılabilir. Modül şeklind derleme için aşağıdaki kmut kullanılmalıdır.

> csc kaynakkod.cs /target:module /out:Program.exe

Referans Bilgileri ve Response Dosyaları

csc.exe derleyicisi derleme işlemini başarı ile gerçekleştriebilmesi için bazı kütüphanelere ihtiyaç duyar. Bu kütüphaneler assembly dosyaları içinde barındırılmıştır. Bu kütüphanalerin projemizde kullanıldığını belirtmek için reference parametresi kullanılır. Eğer referans vermeniz gereken assembly dosyaları fazla ise bu işi otomatikleştirmek için response. dosyaları kullanılır. response dosyasının yerine belirtmek için @ karakteri kullanılır. Örnek bir derleme biçimi aşağıdaki gibidir.

csc @response_dosyası /out:Program.exe kaynakdosya.cs

Derleyici Parametrelerine Toplu Bakış

Aşağıdaki listede csc derleyicisi ile kullanılabilecek bütün parametrelerin kullanımı ve açıklaması verilmiştir.


Parametre Kullanımı

/doc:dosya_ismi Kaynak dosyasındaki XML yorumlarını ayrıştırarak farklı bir dosyaya kaydetmek için kullanılan bir parametredir. Hatırlayacağınız üzere C# ile yazılmış kaynak kodda /// karakterlerinden sonra XML formatında yorum yazılabilmektedir.
/nooutput Kaynak kodun derlenmesini sağlar ancak herhangi bir çalıştırılabilir dosya oluşturmaz. Bu parametre daha çok kaynak kodda hata ayıklama için kullanılmaktadır.
/optimize
/optimize+
/optimize-
Derleme işlemi sırasında kaynak kodda herhangi bir optimizasyonun yapılıp yapılmayacağını belirten bir parametredir. optimize ile optimize+ parametresi eşdeğerdedir.
/addmodule:modül_dosyası Daha önce /module parametresi ile oluşturulan modüllerin herhangi bir çalıştırılabilir dosyaya eklenmesi amacıyla kullanılır. Birden fazla modül dosyasını eklemek için ; karakteri ile modül dosyalarını ayırmak gerekir.
/nostdlib
/nostdlib+
/nostdlib-
.NET’in standart kütüphanesi olan System.dll’in otomatik olarak derlenecek koda eklenip eklenmemesini belirten parametredir. Eğer System.dll’i kendi kaynak dosyamızda kullanmayacaksak burdaki sınıfları kendimiz oluşturmalıyız. Çook nadir kullanılabilecek bir parametredir. /nostdlib ile /nostdlib+ parametresi eşdeğerdedir.
/reference:assembly_adi

yada

/r:assembly_adi
Başka bir assembly dosyasına ait mata verilere referans vermek için kullanılan parametredir. Assembly’nin bulunduğu yer göreceli adres olabileceği gibi tam adres de olabilir. Eğer birden fazla referans dosyası belirtilecekse ; karakteri ile ayrılmalıdır.
/define:SEMBOL
/d:SEMBOL
Derleme zamanında önişlemci sembolü oluşturmak için kullanılır. Kaynak kod içerisinden yapılan #define ön işlemci komutuna karşılık gelmektedir.
/warn:<0,1,2,3,4>
/w:<0,1,2,3,4>
Derleme işlemi sırasında verilecek uyarıların derecesini belirlemek için kullanılan parametredir. Eğer bütün uyarıların gösterilmesini istiyorsak /warn:4 şeklinde kullanmalıyız. /warn:0 parametresi ise hiçbir uyarının görüntülenmemesini sağlar. 0 ile 4 arasındaki değerler ise farklı tipteki uyarıların gösterilip gösterilmemesini sağlar.
/warnaserror
/warnaserror+
/warnaserror-
Derleme sırasındaki uyarıların hata gibi işlenmesini sağlar. Bu genellikle idealist programcıların kullandığı bir parametredir. Eğer uyarı verecek bir durum varsa kodun derlenmemesi sağlanır. /warnaserror ile /warnaserror+ eşdeğerdedir.
/nowarn:uyarı_numarası Belirtilen numaralı uyarının derleme sırasında verilmemesi için bu parametre kullanılır. Eğer birden fazla uyarının verilmemesini istiyorsak uyarı numaralarını ; karakteril ile ayırmamız gerekmektedir.
/fullpaths Derleme sonrasında eğer herhangi bir dosyada hata var ise hatanın oluştuğu dosyanın tam adresinin hata ile belirtilmesini sağlayan parametredir.
/debug
/debug+
/debug-
Hata ayıklamada kullanılacak dosyaların oluşturulması için kullanılan pjarametredir. Eğer debugging işlemini aktif hale getirmek istiyorsak bu parametreyi kullanmamız gerekir. /debug ve /debug+ parametreleri eşdeğerdedir. Hata ayıklama işlemi varsayılan olarak aktif durumda değildir. /debug parametresinin ayrıca full ve pdbonly şeklinde iki seçeneği vardır. Eğer full seçeceği /debug:full şeklinde yazılırsa hata ayıklacı programı çalıştırılan program ile ilişkilendirilir.
/checked
/checked+
/checked-
Aritmetik taşma işlemlerinde istisnai bir durumun oluşup oluşmayacağını bildiren parametredir. Varsayılan olarak bu aktif durumda değildir. Kaynak kod içerisinde bu işlemi checked anahtar sözcüklerini kullanarakta yapabiliriz. Eğer taşam oldugunda istisnai durumun oluşmasını istiyorsak /checked yada /checked+ parametresini kullanmalıyız.
/bugreport:dosya_adi Derleme sırasında kaynak kodda oluşabilecek problemlerin ve bu problemlerin önerilen çözümlerinin belirtilen dosyaya yazdırılmasını sağlayan parametredir. Bu parametre ilebelirtilen dosyaya çeşitli derleme çıktılarıda eklenir.
/unsafe Kaynak kodda unsafe anatar sözcüğünün kullanımını geçerli kılınmasını sağlayacak parametredir. Göstericileri kullanmak için unsafe anahtar sözcüğünü kullanmamız gerektiğini hatırlayın.
/recurse:dir
/recurse:file
Derleme işlemine katılacak kaynak kodların alt klasörlerde aranmasını sağlayacak parametrelerdir. dir seçeneği ile aramaya başlanacak klasör belirtilir. Bu seçenek ile belirtilen klasör projenin varsayılan çalışma kalsörüdür. Eğer file seçeneği kullanılırsa bu durumda belirtilen dosya için arama yapılacaktır. Bu seçenekte wildcard dediğimiz * karakteri kullanılabilmektedir.
/main:sınıf_adi Eğer kaynak kod dosyamızda birden fazla Main() metodu var ise programımızın hangi sınıftaki Main dosyasından başlayacağını belirten parametredir. Bu da kaynak kodumuzda birden fazla Main metodunun bulunabileceğinin göstergesidir.
/nologo Derleme sonrasında ekranda gösterilen derleyici bilgilerinin kullanıcıya gösterilmemesini sağlayan parametredir. Kanımca çok faydalı olmayan bir parametredir.
/help

yada

/?
Derleyici parametreleri ile ilgili yardım bilgilerinin görüntülenmesini sağlayan parametrelerdir.
/incremental
/incremental+
/incremental-

yada

/incr
/incr+
/incr-
Derleme işleminin optimize edilmiş biçimde meydana gelmesini sağlayan parametrelerdir. Şöyleki, bir önceki derleme bilgileri .dbg ve .pdb dosylarında tutularak yeni derleme işlemlerinde sadece değiştirilen metotların yeninden derlenmesi sağlanır. Farklı iki derleme işlemi arasındaki farklar ise .incr dosyasında saklanır. Varsayılan olarak bu parametre aktif durumda değildir. /incremental ile /incremental+ parametreleri eşdeğerdedir.
/codepage:id_no Derleme işlemlerine katılacak kaynak kod dosyaları için bir karakter kodlaması numarası alan parametredir. Bu parametre daha çok kaynak kod dosyalarındaki karakterlerin sizin sisteminizde bulunmayan karakter kodlamasına denk düştüğü durumlarda kullanılır.
/baseaddress:adres Yüklenecek DLL lerin belirlenecek bir adresten itibaren belleğe yüklenmesini sağlar. adres değeri 8,10 yada 16 lık sayı düzeninde olabilir.
@dosya_adi Bazı derleyici parametrelerini otomatik olarak derleyiciye bildirmek için bu parametrelerin önceden yazıldığı dosyayı bildirmek için kullanılan parametredir.
/linkresource:dosya_adi

/linkres:dosya_adi
Belirtilen .NET kaynak(resource) dosyasına bir bağlantı oluşturmak için bu parametreler kullanılabilir.
/resource:dosya_adi

/res:dosya_adi
Belirtilen .NET kaynak(resource) dosyasını çıktı dosyasına gömmek için kullanılan parametredir. Birden fazla kaynak dosyası gömülecekse ; karakteri ile ayırmak gerekir.
/win32icon:dosya_adi Belirtilen Win32 ikon dosyasını çıktı dosyasına eklemek için kullanılan parametredir.
/win32res:dosya_adi Belirtilen Win32 kaynak(resource) dosyasını(.res) çıktı dosyasına eklemek için kullanılan parametredir.

Bu yazıda C# komut derleyicisinin paramtrelerini ve kullanımlarını inceledik. Yukarıdaki tablonun sizin için iyi bir referans kaynağı olacağını umuyorum.
Makale:
C# Komut Satırı Derleyicisi(csc.exe) ve Parametreleri C#, Visual C# ve .NET Sefer Algan
  • Yazılan Yorumlar
  • Yorum Yaz
HAZ
6
2014
sorunumu çözdüm teşekkürler
HAZ
6
2014
sorunumu çözdüm teşekkürler
HAZ
6
2014
sorunumu çözdüm teşekkürler
HAZ
6
2014
sorunumu çözdüm teşekkürler
HAZ
6
2014
sorunumu çözdüm teşekkürler
HAZ
6
2014
sorunumu çözdüm teşekkürler
HAZ
6
2014
sorunumu çözdüm teşekkürler
HAZ
6
2014
sorunumu çözdüm teşekkürler
ARA
20
2012
csc derleyici ayarlarını denildiği şekilde yaptım, csc.exe dosyasının oldugu yeri path olarak verdim. Ama derlerken ancak csc.exe nin olduğu klasördeyken tanıyor, baska herhangi bir klasör veya konumdayken csc yazdıgımda tanınmıyor hatası veriyor, bu yüzden de cs dosyasını derlerken de aynı hata çıkıyor
HAZ
14
2010
hocam ben yeni başladım bu işe daha önce vb.net öğreniyordum şimdi siz söleyin bana doğru yoldamıyım c# beni pc üzerinde nekadar ileri görür.
HAZ
14
2010
hocam ben yeni başladım bu işe daha önce vb.net öğreniyordum şimdi siz söleyin bana doğru yoldamıyım c# beni pc üzerinde nekadar ileri görür.
EYL
5
2006
çok faydalı bir makale, teşekkürler
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor