GNU Make'i bir dizindeki tüm C dosyalarını ayrı programlara ayırmanın bir yolu var mı, her program .c uzantılı olmayan kaynak dosya olarak adlandırılıyor mu? SanmıyorumBir dizindeki tüm C dosyalarını ayrı programlara derleyin
cevap
SRCS = $(wildcard *.c)
PROGS = $(patsubst %.c,%,$(SRCS))
all: $(PROGS)
%: %.c
$(CC) $(CFLAGS) -o [email protected] $<
hatta bir makefile ihtiyaç - Varsayılan örtülü yapmak kuralları bunu yapmalıdır:
$ ls
src0.c src1.c src2.c src3.c
$ make `basename -s .c *`
cc src0.c -o src0
cc src1.c -o src1
cc src2.c -o src2
cc src3.c -o src3
Düzenlendi biraz daha basit komut satırı yapmak.
SRCS = $(wildcard *.c)
PROGS = $(patsubst %.c,%,$(SRCS))
all: $(PROGS)
%: %.c
$(CC) $(CFLAGS) -o [email protected] $<
clean:
rm -f $(PROGS)
Martin Broadhurst'un "temiz" hedefi ekleyerek yanıtını iyileştirme. "Temiz olun" tüm çalıştırılabilir temizler.
'clean' gibi bir hedef için' .PHONY' kullanmalısınız. Nedeni için http://stackoverflow.com/questions/2145590/what-is-the-purpose-of-phony-in-a-makefile adresine bakın. –
@MartinBroadhurst Ayrıca "all" hedefi için bir .PHONY 'kullanmalısınız. – iBug
- 1. makefiles - tüm c dosyalarını bir kerede derleyin
- 2. Bir dizindeki tüm Fortran dosyalarını bulmak için Bash komutu
- 3. Basit bir merhaba dünya ZeroMQ C örneği derleyin, bayraklar derleyin?
- 4. gmake bir dizindeki tüm dosyaları derlemek
- 5. Dizindeki Tüm Klasörleri Listele
- 6. Bir dizindeki bir türdeki tüm belgeleri silemiyorum
- 7. QMake: Dizindeki tüm dosyaları otomatik olarak derleme
- 8. Aktif dizindeki tüm bilgisayarları listele
- 9. Bir dizindeki tüm dosyaları yüksek metin 2 ile nasıl açabilirim?
- 10. Dizindeki tüm sınıfları içe aktarın mı?
- 11. Perl: Tüm inline C kodumu nasıl ayrı bir dosyaya koyabilirim?
- 12. El ile xml düzen dosyalarını önceden derleyin ve bunları kullanın
- 13. Mercurial'a .orig dosyalarını ayrı bir dizine koyma yolu var mı?
- 14. Bir dizindeki tüm dosyaları bir baslık kullanarak bir araya getirin
- 15. Bir makefile kullanarak tüm daha az dosyayı derleyin
- 16. Kaynak dosyayı farklı bir dizine derleyin?
- 17. Android.mk, tüm cpp dosyalarını dahil et
- 18. Apache .htaccess: .css dosyalarını ayrı bir alandan mı kullanıyorsunuz?
- 19. PowerShell'de bir dizindeki tüm dosyaları bulabilmemin bir yolu var mı?
- 20. Elasticsearch: Dizindeki kopyaları kaldırın
- 21. Linux'ta bir PHP betiğini derleyin.
- 22. Bir dizindeki tüm CSV'lerden e-postaları nasıl temizlerim?
- 23. Git neden bir dizindeki tüm dosyaları yok sayıyor?
- 24. İki dizinin dışında bir dizindeki tüm dosyaları kaldırın
- 25. Bir dizinde ve tüm alt dizindeki dosyaların listelenmesi
- 26. Linux bir dizindeki tüm dosyaların içeriğini boşaltmak mümkün mü
- 27. VB6 kullanarak bir dizindeki tüm dosya adlarının listesini nasıl alabilirim?
- 28. C# NameValueCollection ayrı değer
- 29. Tüm sass dosyalarını tek bir dosyada birleştir
- 30. iOS - dizindeki
Son boşlukların aslında bir sekme olduğunu hatırlatmakla. –
@Martin parlak! Ama neden ana hattaki PROGS ve SRCS'yi aramıyorsunuz anlamıyorum. –
@ user4050, üzgünüm, sorunuzu kaçırdım. Varsayılan 'all' hedefi '$ (PROGS)' oluşturur ve ana satır bir uzantı olmadan dosyaların nasıl oluşturulacağını söyler, hangi '$ (PROGS)' ''. $ (SRCS) 'dır. –