Kayıtlar

Nisan, 2017 tarihine ait yayınlar gösteriliyor

makefile ile derleme -4

Adım 5: clean rule hellomake dışında yani kodumuzu derleme dışında make'e yeni bir iş yaptırmak için yeni bir kural tanımlıyoruz: clean Öncelikle, anladığım, bu ":" öncesi kuralların sonucunda bir çıktı (output) oluyor. Onun olmaması için, yani make clean dediğimde bazı dosyaları silmesi, clean.exe diye bir şey üretmemesi için .PHONY kuralını çalıştırıyorum. Bu kuralla tanımlanan kurallar çıktı üretmiyor. .PHONY: clean clean dışında başka çıktı üretmesini istemediğim kurallar olsa yanına yazmaya devam edecektim. Şimdi clean kuralını tanımlıyorum: clean: rm -f $(OBJ) Burada dosyayı silecek rm komutunu -f yani "force" parametresi ile çağırıyorum. böylece zaten " dosya yok, yine de devam edecek misin " gibi sorular sormadan olanı silip işini bitiriyor. Ancak burada şu sorun var. komut satırında rm yazınca herhangi bir şey çalışmıyor. yani path'imde gcc.exe gibi make.exe ya da mingw31-make.exe gibi rm.exe olması ger...

makefile ile derleme -3

Kodlarımızı daha verimli bir şekilde derlemek için bazı değişiklikler yapmak gerekiyor. Adım3: object dosyalarını kullanma Daha verimli ile kastım, tüm dosyaları baştan derlemek yerine sadece değişen dosyaları derlemek. Şu anki projemizde 2 c kodu var belki ama çok daha fazla sayıda kaynak kodu olduğunda, birinde yapılan değişiklik için hepsini derlemek mantıklı bir iş olmayacaktır. makefile dosyasında bir kaç küçük değişiklik yapmak gerekiyor. CC=gcc CFLAGS=-I. hellomake: hellomake.o hellofunc.o @echo merhaba $(CC) -o hellomake hellomake.o hellofunc.o $(CFLAGS) Önce derleyici .exe dosyasının adını CC makrosuna yazıyoruz. Böylece ileride derleyiciyi değiştirmek istediğimizde sadece bu kısmı değiştiriyoruz. Bu standart bir kullanım olduğundan, başka biri tarafından yazılan makefile'ın derleyicisini değiştirmek isteyince öncelikle yapacağımız yine bu satırı değiştirmek. Sonra derleyici bayraklarını? (compiler flags) CFLAGS makrosuna giriyoruz. Daha önceden -I i...

makefile ile derleme -2

Resim
Öncelikle, sanki şu linkteki işleri yapmakla başlayacağım. http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/ Burada bir makefile  tutorial  var. Baktım,  tureng  " öğretici başlangıç " diye çevirmiş tutorial'ı. o sitedeki gibi 3 tane kaynak kod dosyası oluşturdum hellomake.c hellofunc.c hellomake.h #include <hellomake.h> int main() { // call a function in another file myPrintHelloMake(); return(0); } #include <stdio.h> #include <hellomake.h> void myPrintHelloMake(void) { printf("Hello makefiles!\n"); return; } /* example include file */ void myPrintHelloMake(void); bu dosyaları C: altında c_dene diye bir klasöre attım. Klasörde sadece bu üç dosya mevcut. MinGW'yi ortam değişkenlerine eklemediğim için bu dizinde, direkt olduğu klasörü belirterek çağıracağım. "C:\MinGW\bin\gcc" --version sonra ilk yaptığım makefile olmadan derlemek Adım1: makefile olmadan derleme "C:\MinGW\bin\g...

makefile ile derleme -1

Resim
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. 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 ...

Nasıl yazılır

Türkçe zor bir dil. Bu yaşa geldim, hala yıllardır yanlış yazdığım, ya da her seferinde nasıl yazılıyor diye baktığım bir çok kelime var. Bugün öğrendiğim yeni bir sayfa var:  Vikipedi:Türkçede sık yapılan hatalar Ancak tabii ki ne ilgili sayfada ne de aşağıda benim yazdıklarım doğru olacak diye bir şart yok. Dahası, arada TDK bazı şeylerin yazımını değiştiriyor. Bugün yanlış dediğiniz yarın doğru olabiliyor. Ben de bildiğim, gördüğüm, arada bir karşılaştığım kelimelerin yanlış ve doğru hallerini buraya yazayım istedim. Bazıları birbirine yazımı karıştırılan kelimeler. Yani her ikisi de doğru, o yüzden yanına anlamlarını yazdım. Yanlış Yazım Doğru Yazım direk (sütun) direkt (doğrudan) döküman doküman farketmek fark etmek gurup (güneşin batması) grup (ekip, takım) haftasonu hafta sonu herbir her bir herbiri her biri herhangibir herhangi bir hergün her gün herkez herkes herşey her şey hiç bir hiçbir hiçbirşey hiçbir şey hiçkimse hiç kimse hukuğu hukuku i...

Başlarken...

Bu blog, kendime bir şeyler hatırlatmak amacı ile hazırlanmaya başlıyor, bu sayfa müstesna... Asıl amacım; daha önceden öğrenip yaptığım, bir süre sonra unuttuğum şeyleri tekrar öğrenmeye çalışırken sarf ettiğim eforu azaltmak. Bilgilendirme bundan daha sonra gelecek bir amaç. Ama genelde yapmaya çalışırken yazmaya çalışacağım ki bir şeyin sadece doğru yapılışını değil yanlış yapılabileceklere de değineyim. Bir şekilde yolu bu sayfalara düşenler için; ne formatta ne anlatım tarzında tutarlılık arayın. Bir takım kelimelerin İngilizcesi ile karşılaşabilirsiniz özellikle teknik konularda yazarken. Emulator 'e öykünücü demek zor gelir bana, ancak emülatör diyebilirim. Ancak dil bilgisi kurallarına uyulmayan bir şey görürseniz lütfen yorum düşünüz. Maalesef bazen Türkçe karakter sorunundan dolayı kelimeleri (mühendis) Türkçe karakter olmadan (muhendis) yazma durumunda kalabiliyorum. Büyük harfle cümleye başlamadığım da oluyordur arada... En önemlisi de; genelde deneme yanılma yo...