Şimdi Ara

klasörlerin içindeki .c dosyalarını gcc yi çağırarak derlete c sharp programı

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
8
Cevap
0
Favori
439
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • GitHub
    takanik/gcc-runner-for-directory
    https://github.com/takanik/gcc-runner-for-directory







  • Programda ufak bir tasarım hatası var. Bir klasörde diyelim ki 100 C dosyası var. 100 tane cc1.exe collect.exe gibi GCC'ye ait exe'ler bir anda RAM'i doldurur. Cunku program her bir dosya için yeni GCC prosesi açıyor.

    Bu tür işler Makefile dosyası yazarak yapılır ve bir klasördeki C'leri aynı dosya adında EXE'ye cevirecek Makefile birkaç satırda yazılabilir ve çalıştığında RAM de sadece bir GCC dolayısıyla 1 cc1.exe ve 1 collect.exe yer kaplar :)
  • programı olabildiğince basit tuttum.waitforexit de yapılabilirdi.yapmadım.zaten kodlar açık isteyen istediği gibi alıp kullanabilir değiştirebilir.IDE'ler de aşağı yukarı aynı mantıkla çalışıyor.komut satırından programlama dilinin derleycisini çağırıyor.makefile olsa bile enin sonunda derleyici çağrılıyor bir şekilde.tavsiyen için sağol.
  • Programı eğitim amaçlı yazmış olsan da bu işler Makefile işidir.

    Bir klasördeki tüm c dosyalarını aynı isimde exe ye dönüştüren Makefile:

    all: $(patsubst %.c, %.exe, $(wildcard *.c))

    # patsubst fonksiyonu: patsubst(search, replace, text)
    # Klasördeki tüm c dosyalarına %.out hedefini (target) uygula

    %.exe: %.c
    gcc $< -o $@

    # %.exe 'yi oluşturmak için c dosyası önşart (prerequisite) girişi
    # $< önşart $@ hedef kısayolu yani gcc %.exe -o %.c


    Makefile'ı Microsoft birçok projede kullanır örneğin PowerShell deki OpenSSH paketini inşa etmek için Makefile kullanıyor.
  • seyfi84 S kullanıcısına yanıt
    Üzgünüm fakat $ gcc *.c ile o olayı çözmez cunku gcc'ye -o (object) seceneğini de vermen gerekli. gcc o sekilde çalıştırınca tüm dosyaları derler fakat hepsine a.out veya a.exe gibi bir isim verir bu durumda örneğin 100 dosya derlersen 99'u üstüne yazılıp silinir, 100. son dosya a.exe gibi isimle kalır :)

    Onun dışında forumun cok yetersiz ve eksikliklerle dolu olduğu ortada. Forumun geliştiricileri tipik .Net elemanı. Yetersiz. Forumun kurucuları ve adminleri ise 2000'lerde asp ile başlamışlar, şans faktörü ile bu kadar büyümüşler; teknik bilgi teknik vizyonları ile değil.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.