Standart C Programlama Dili


D.1. Cygwin Kurulumu Ve Temel Kullanımı

Cygwin, Windows’ta POSIX standardına göre geliştirilmiş, unix-benzeri bir ortam sağlayan kapsamlı bir GNU ve diğer açık kaynak kod araçları derlemesidir. Cygwin’in temeli cygwin1.dll isimli paylaşılan kütüphanedir ve temel Windows sistemiyle etkileşim kurarken Cygwin programlarına unix-benzeri sistem fonksiyonları sağlar. Normalde, Cygwin GCC ile derlenen programlar, cygwin1.dll çalışma zamanı kütüphanesini de gerektirir. Cygwin kütüphanesi, bu programların beklediği unix sistem çağrılarını ve ortamı sağlar. Bu şekilde, standart Microsoft Windows ve/veya Cygwin Uygulama Programlama Arayüzünü kullanan Windows konsol veya Grafiksel Kullanıcı Arayüzü uygulamaları yazmak mümkündür. Ayrıca, bu sayede, kaynak kodda kapsamlı değişikliklere gerek kalmadan, birçok önemli unix programını kolayca Cygwin ortamına taşımak mümkündür. Böyle bir örnek de GNU C derleyicisinin bizzat kendisidir.

Cygwin kurulum programı olan setup-x86_64.exe sadece 64 bitlik Windows ortamlarını destekler ve https://cygwin.com/ adresinden indirilir. Bu program dosyasının her zaman en son çıkan uyarlamasını kullanmanız önerilir. Dosyayı boş bir dizine indirdikten sonra, çalıştırıp, istediğiniz Cygwin paketlerini Windows bilgisayarınıza kurabilirsiniz. Cygwin kurulum programı başlangıçta sadece bazı temel paketleri kurar. Bu kitap ve bu ek için ihtiyaç duyacağınız, gcc-core, make ve gdb dahil olmak üzere yüklemek isteyeceğiniz diğer Cygwin yazılımlarını, kurulum programını çalıştırdığınızda ekrana gelen paket yöneticisinden seçebilirsiniz. Yazılım eklemek, kaldırmak veya güncellemek istediğinizde, kurulum programının güncel uyarlamasını indirip tekrar çalıştırmanız gerekir.

MinGW ve Mingw-w64 de Windows için birer GCC derleyicisini sağlarlar, ancak Cygwin GCCden farklı olarak, cygwin1.dll gibi, özel çalışma zamanı kütüphanesi gerektirmeyen, doğal 32 veya 64 bit Windows programları üretirler. Mingw-w64’ü Cygwin altında da kurup kullanabilirsiniz: Bunun için (a) 32 bitlik programlar üreten mingw64-i686-gcc-core paketini ve/veya (b) 64 bitlik programlar üreten mingw64-x86_64-gcc-core paketini yukarıdaki paragrafta anlatıldığı gibi Cygwin ortamınıza kurabilirsiniz. Derleme komutu olarak da gcc yerine (a) 32 bitlik program üretmek için i686-w64-mingw32-gcc ve (b) 64 bitlik program üretmek için ise x86_64-w64-mingw32-gcc kullanılmalıdır. Derleyici komut satırı seçenekleri tüm yukarıdaki derleyiciler için aynıdır ve Ek B’de anlatılmaktadır.

Cygwin’i kurduğunuz dizinin (örneğin C:\cygwin64\) altı unix-benzeri sistemlerin kök dosya sistemine benzer: /bin, /dev, /etc, /home, /lib, /tmp, /usr, /var gibi tanıdık bir altdizin yapısına sahiptir. Cygwin’deki yüzlerce komut satırı aracını ve genellikle unix-benzeri sistemlerde bulunan diğer programları yukarıda anlatıldığı gibi kurulum programı yardımı ile yükledikten sonra, Windows komut satırında bash (veya örneğin C:\cygwin64\bin\bash.exe) yazarsanız, unix-benzeri bir komut satırı ortamına geçiş yapabilirsiniz. Bu ortamda çalışırken, kök (/) dizin aslında Windows’taki Cygwin kurulum dizini (örneğin C:\cygwin64\ dizini) olur. Windows’taki sürücülere geçiş yapmak için sürücü harfi önüne /cygdrive/ koyarak, : karakterini kullanmayarak ve dizin ayırıcı olarak \ yerine / kullanarak cd komutunu kullanabilirsiniz. Aşağıda örnek bir oturum verilmiştir:

C:\>bash
$ cd /cygdrive/c/Windows/system32
$ pwd
/cygdrive/c/Windows/system32
$ cygpath -a -w .
C:\Windows\system32
$ gcc --version
gcc (GCC) 10.2.0
[…]
$ gdb --version
GNU gdb (GDB) (Cygwin 9.2-1) 9.2
[…]
$ make --version
GNU Make 4.3
[…]
$ echo "${BASH_VERSION}"
4.4.12(3)-release
$ exit
exit
C:\>

Ek B’de anlatılan GCC, GDB ve GNU Make ile ilgili bilgiler Cygwin için de geçerlidir. Cygwin ile unix-benzeri diğer ortamlar temelde aynı olduğu için, o ekte anlatılanlar burada tekrar edilmeyecektir. Eğer okumadıysanız, öncelikle Ek B’yi okumanızı öneririz.