makefile ile derleme -1
makefile konusunda çok bilgim yok. Ama bir şeyler öğrenmem gerekiyor. O yüzden denerken yazayım dedim.
Gönül isterdi ki bir kaç hafta önce MinGW "Minimalist GNU for Windows" kurulumu yapmamış olayım da oradan başlayayım. Ancak şimdi tekrardan yapmak yani kaldırmak bazı sorunlar çıkartabilir diye buradan başlıyorum.
Tek bir kaynak kodu dosyası (hello.c) derleyeceksem makefile kullanmak gerekli olmayabilir ancak bir çok kaynak kodu ve header dosyası içeren (*.c, *.h), bir çok adımda derlenecek programı tek komutla derlemeye yarıyor diye anlıyorum. Zaten tek kaynak kodlu derleme için makefile yazsak herhalde tek bir satır olur.
Baktım, MinGW altında bin klasöründe ("C:\MinGW\bin"), gcc.exe görüyorum ama make.exe göremedim. Ama "mingw32-make.exe" diye bir dosya var.
Versiyon kontrolü yaparak, doğru exe dosyaları ile mi uğraşıyorum bir kontrol edeyim (help ile daha doğru ve fazla bilgi alınıyordur muhtemelen de ben bu yöntemi seçiyorum).
Komut satırında (cmd.exe) ilgili dizine gidip şu satırları yazıyorum:
mingw32-make --version
gcc --version
Buradan gördüğüm, GNU Make ve GNU C Compiler mevcut.
Aslında çevre değişkenlerine (ortam değişkeni) (environment variables) "path" kısmında ilgili "bin" klasörünü daha önceden tanımlamışsak, komutlar bu dosyaların bulunmadığı herhangi bir başka klasörde de aynı şekilde çalışır. Hatta bunu denemek iyi olur çünkü tanımlı ise hangi gcc ve make komutunun tanımlandığını bilmek gerekir. Tanımlı ise aynı şekilde çalışır, değilse
gcc --version
Her şey hazırsa sonraki adıma geçebiliriz.
Gönül isterdi ki bir kaç hafta önce MinGW "Minimalist GNU for Windows" kurulumu yapmamış olayım da oradan başlayayım. Ancak şimdi tekrardan yapmak yani kaldırmak bazı sorunlar çıkartabilir diye buradan başlıyorum.
Neden Makefile
Normalde zaten derleyebiliyorum helloworld programını. O zaman makefile neden gerekli?Tek bir kaynak kodu dosyası (hello.c) derleyeceksem makefile kullanmak gerekli olmayabilir ancak bir çok kaynak kodu ve header dosyası içeren (*.c, *.h), bir çok adımda derlenecek programı tek komutla derlemeye yarıyor diye anlıyorum. Zaten tek kaynak kodlu derleme için makefile yazsak herhalde tek bir satır olur.
Başlangıç
Derleyeceğim kod C kodu olacak. Öncesinde MinGW kurduğumu söylemiştim. Başka yolları da vardır herhalde ancak bir derleyici (compiler) gcc*.exe, bir de makefile çalıştıran *make*.exe ihtiyacımız var. Bunlardan makefile kullanmayacaksam da lazım, ikincisi ise ancak makefile çalıştıracaksam lazım.Baktım, MinGW altında bin klasöründe ("C:\MinGW\bin"), gcc.exe görüyorum ama make.exe göremedim. Ama "mingw32-make.exe" diye bir dosya var.
Versiyon kontrolü yaparak, doğru exe dosyaları ile mi uğraşıyorum bir kontrol edeyim (help ile daha doğru ve fazla bilgi alınıyordur muhtemelen de ben bu yöntemi seçiyorum).
Komut satırında (cmd.exe) ilgili dizine gidip şu satırları yazıyorum:
mingw32-make --version
gcc --version
Buradan gördüğüm, GNU Make ve GNU C Compiler mevcut.
Aslında çevre değişkenlerine (ortam değişkeni) (environment variables) "path" kısmında ilgili "bin" klasörünü daha önceden tanımlamışsak, komutlar bu dosyaların bulunmadığı herhangi bir başka klasörde de aynı şekilde çalışır. Hatta bunu denemek iyi olur çünkü tanımlı ise hangi gcc ve make komutunun tanımlandığını bilmek gerekir. Tanımlı ise aynı şekilde çalışır, değilse
gcc --version
'gcc' is not recognized as an internal or external command, operable program or batch file.
diye hata verecektir.
Not: başta tanımlamadan yapmaya çalıştım ancak sonrasında aldığım bir hatadan dolayı sistem path'e "C:\MinGW\bin"i tanımladım.
Not: başta tanımlamadan yapmaya çalıştım ancak sonrasında aldığım bir hatadan dolayı sistem path'e "C:\MinGW\bin"i tanımladım.
Her şey hazırsa sonraki adıma geçebiliriz.
Yorumlar
Yorum Gönder