C#nedir?com
 
YAZAR HAKKINDA
Caner Şahan
Caner Şahan
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
24 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: belirtmek default derleyicisinin dosyasini framework gerekmektedir. kaynak kullanilir. olmasi platformu programa programimizin public windows windows’ Mono ve .NET Caner Şahan
 
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 : Orta
Kategori : Mono ve .NET
Yayınlanma Tarihi : 24.9.2004
Okunma Sayısı : 16507
Yorum Sayısı : 1     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Ş
XML - Deniz Kılınç
emre TAŞ
yazının devamı >
emre TAŞ
Decompiling and Reverse Engineering .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Masaüstü mü ? İnternet Mi? .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
.Net Kavramları - .Net Radyo
emre TAŞ
yazının devamı >
emre TAŞ
Yeni Başlayanlar için - .Net Radyo
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer 'in Blogu
ChatBot UI Sample 22.10.2017
Turhal Temizer 'in Blogu
C# – IRR Function 22.10.2017
Burak Selim Şenyurt
Asp.Net Core'da Bir WebSocket Macerası 22.10.2017
Burak Selim Şenyurt
.NET Core 2.0 ile Basit Bir Web API Geliştirmek 22.10.2017
  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
Linux Olmadan Mono Olur mu?
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Bildiğiniz gibi framework kütüphaneleri kullanan uygulamalarımızda framework sdk’ nın yüklü olması gerekmektedir. Framework’ ün yüklü olmasının sebebi, programımızın içinde framework kütüphanelerinden birini kullanmamızdan dolayıdır. Peki mono tarafında işler nasıl gidiyor acaba? Linux için mono, kaynak koddan veya .rpm’ den kurulabilir. Windows için ise .exe uzantılı bir setup dosyası mevcuttur. Bu dosyayı www.go-mono.com sitesinin download bölümünden indirmemiz gerekiyor.



Bu setup dosyasını indirdikten sonra yapmamız gereken iş kurulumu başlatmak ve next diyerek yola devam etmek. Programımızın yolunu (path) ayarlayarak her defasında derleyicinin adresini girme zahmetinden kurtulalım. Bunun için Control Panels>>System>>Advanced>>Environment Variables’ a girerek, Mono kurulumuna ait Bin klasörünü Variable Path bilgisine aşağıdaki gibi ekleyelim.



Şekil 1.mcs derleyicisinin yolunun belirlenmesi

Artık linux olmadan da mono kullanabiliriz. Bununla birlikte, derlediğimiz program hem windows platformunda, hemde linux platformunda başarılı bir şekilde çalışacaktır. Windows’ ta bir merhaba yaptırarak nasıl çalışacağımıza bakalım.

using System;

class merhaba
{
         public static void Main(string[]args)
           {
              string ver=Environment.OSVersion.ToString();
              Console.WriteLine("Slm "+ver);
              Console.ReadLine();
            }
}
Programın derlenmesi ve çalıştırılmasının linux’ takinden bir farkı yok.



Şekil 2. mcs derleyicisinin Windows paltformu üzerinde çalışmasının sonucu.

Linux’ ta veya başka bir platformda yazdığımız bir programda eğerki mono kütüphanesinin herhangi bir isim uzayı kullanılıyorsa(mono,gtk,glade,pango....gibi) ve bu programın windows’ ta çalışması isteniyorsa mono’ nun windows versiyonunu mutlaka yüklememiz gerekmektedir. Çünkü bunun içinde Gtk# kütüphaneleri yer almaktadır. Şimdide daha önce ki makaledeki uygulamayı windows Xp üzerinde çalıştıralım ve cross platformla tanışalım. İki uygulamayı karşılaştırmadan önce linux’ ta yazdığımız programa tıkladığınız zaman bir hata verir. Bunun sebebi using Gtk satırındaki Gtk’yı bulamamasıdır. Çünkü Gtk’ nın, Gtk# içerisinde ve mono üzerinden çalışması gerekiyor. Windows XP’de programı çalıştırmak için  C:\mono mono_ile_form.exe yazarsak;



Şekil 3.Windows Xp platformu üzerinde çalışan programımız

Linux üzeride platformu çalıştırmak için  $mono mono_ile_form.exe yazarsak;



Şekil 4.Linux platformu üzerinde çalışan programımız

MCS compiler parametreleri:

mcs komut parametreleri Anlamı
--about
mcs derleyicisi hakkında genel bilgiler verir.
--addmodule:MODULE1[,MODULE2]
Daha önceden hazırlanmış modüllerin çalışabilir kaynak koda eklenmesi için kullanılır.
-checked, -checked+ Parametre taşması olduğu zamanlar bir exception verilip verilmeyeceğini belirtmek içindir. default olarak açık değildir. Eğer exception oluşmasını istiyorsak -checked veya -checked+ olarak belirtmeliyiz. (default olarak unchecked’ dır).
-checked- checked operasyonların unchecked pozisyona çekilmesini sağlar.
-codepage:ID Kaynak kod dosyalarındaki karakterlerin sistemde bulunmadığı zamanlarda kullanılır.
-define:Sembol, -d:sembol Derleme zamanında önişlemci komutu kullanmak içindir. Kaynak kod içindeki #define ile aynı anlamdadır.
-debug  -debug+

 -g
Genel olarak debug bilgileri vermek için kullanılır. Bu debug bilgileri assembly dosyalarının içinde resource file’lar içinde tutulur.
-delaysign+
Geliştirme aşamasında strong name’in daha güvenli korunması için kullanılan bir parametredir. Bu parametrenin çalışması için assembly.cs içinde                         [assembly: AssemblyDelaySign (true)]  olması gerekir.
--expect-error X L Oluşan hataların açıklanması için kullanılır. Sadece test amaçlı bir kullanımı vardır. X hata adı L de hatanın oluştuğu satırdır.
--fatal Compiler debugger olarak kullanılır. Debugger tarafından yakalanan hataları ekranda belirtir.
-keyfile:KEYFILE Assembly’ lerde kullanılılan strong name key(.snk) dosyaları oluşturmak için kullanılır. Public key oluşturmak için delaysign+ parametreside çalıştırmamız gerekir.
-lib:dll’lerin yolları Kullanılacak olan dll’ lerin yollarının belirtilmesi.
-L yol Compiler’ ın belirtilen yoldaki dll’ lere bakması için belirtilir.
-main:sınıf Birden fazla Main method kullandığımız zaman hangi sınıftaki Main metodunun giriş (entry-point) olarak kullanılacağını belirtiriz.
-nostdlib, -nostdlib+ System.dll’ in derlenecek koda eklenip eklenmeyeceğini belirten parametredir. Bu parametreleri eklediğimiz zaman System.dll derleme aşamasında eklenmez.
-noconfig, -noconfig+ Default olarak compiler ayarlarının yüklenmemesi için kullanılır. Default ayarlarda System.dll’ leri referans edilmiş durumdadır.
-nowarn:uyarıno Uyarı numarası verilen uyarının boş verilmesini (ignore) edilmesini sağlar.
-out:dosyaismi, -o dosyaismi Derlenecek dosyanın ismini belirtmek için kullanılır.
-pkg:paketler(dll)1[,paketler2(dll)] Gösterilen paketlerin kaynak kodda kullanıldığını belirtmek için kullanılır. Genelde third-party denilen bileşenlerinlerin veya resim dosyalarının programa referanse edilmesi için kullanılır.
-resource:RESOURCE[,ID]
Resource dosyasını programa gömer.
-r:ASSEMBLY1[,ASSEMBLY2], -r ASSEMBLY1[,ASSEMBLY2] Programa referans göstereceğimiz dll dosyalarını belirtmek için kullanılır.
-target:çeşit, -t:çeşit Derlenecek kodların ne olarak derleneceğini belirtmek için kullanılır. 4 çeşidi vardır. Bunlar   -target:library(component libraries),-target:exe(plain executable),-target:winexe(Win Forms) ve -target:module (partial library).            
-unsafe, -unsafe+ Pointer kullanımına izin veren parametredir.
--version mcs’in versiyonunu verir.
-warnaserror, -warnaserror+ Uyarıların hataya dönüşmesini sağlayan parametredir.
-warn:LEVEL Derleme sırasında oluşacak olan hataların derecesini belirtmek için kullanılır. En düşük 0, en yüksek 4 değerlerini alabilir. default olarak 2 dir.
-win32res:resource_file Belirtilen resource file’ ın programa eklenmesini sağlar.
-win32icon:dosya_ismi Belirtilen iconun eklenmesini sağlar.
Umarım cross platform’ un tadına varmışınızdır. Artık mono’ yu windows tarafında da çalıştırdığımıza göre önümüze ne çıkabilir ki? Bundan sonra yapacağınız uygulamalar için illaki linux üzerinde çalışmamız artık gerekli değil.

Kolay Gelsin

CANER ŞAHAN

C:\mcs    -r:Monodoc,MSDN Magazine    Mono&Windows.cs       :)



Makale:
Linux Olmadan Mono Olur mu? Mono - Linux'ta .NET Caner Şahan
  • Yazılan Yorumlar
  • Yorum Yaz
MAR
21
2005
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