क्या जीएनयू का उपयोग करने का कोई तरीका अलग-अलग प्रोग्रामों में निर्देशिका में सभी सी फाइलों को संकलित करने का तरीका है, प्रत्येक प्रोग्राम को .c एक्सटेंशन के बिना स्रोत फ़ाइल के रूप में नामित किया गया है?निर्देशिकाओं में सभी सी फाइलों को अलग-अलग प्रोग्रामों में संकलित करें
उत्तर
SRCS = $(wildcard *.c)
PROGS = $(patsubst %.c,%,$(SRCS))
all: $(PROGS)
%: %.c
$(CC) $(CFLAGS) -o [email protected] $<
मुझे नहीं लगता कि आप भी एक makefile की जरूरत है - डिफ़ॉल्ट अंतर्निहित मेकअप नियम यह करना चाहिए:
$ 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
संपादित कमांड लाइन एक छोटे से सरल बनाने के लिए।
SRCS = $(wildcard *.c)
PROGS = $(patsubst %.c,%,$(SRCS))
all: $(PROGS)
%: %.c
$(CC) $(CFLAGS) -o [email protected] $<
clean:
rm -f $(PROGS)
"साफ" लक्ष्य जोड़कर मार्टिन ब्रॉडहर्स्ट के जवाब में सुधार। "साफ करें" सभी निष्पादन योग्य साफ करेगा।
आपको 'क्लीन' जैसे लक्ष्य के लिए '.PHONY' का उपयोग करना चाहिए। कारण के लिए http://stackoverflow.com/questions/2145590/what-is-the-purpose-of-phony-in-a-makefile देखें। –
@ मार्टिन ब्रॉडहर्स्ट आपको लक्ष्य 'सभी' के लिए '.PHONY' का भी उपयोग करना चाहिए। – iBug
- 1. "वास्तविक" प्रोग्रामों में C++ संकलित
- 2. मेकफ़ाइल - एक बार में सभी सी फाइलों को संकलित करें
- 3. grep सभी निर्देशिकाओं में
- 4. सभी फाइलों को हटाएं लेकिन सभी निर्देशिकाओं को एक बैश स्क्रिप्ट में रखें?
- 5. gmake निर्देशिका में सभी फ़ाइलों को संकलित करें
- 6. निर्देशिका में सभी फ़ाइलों और निर्देशिकाओं को सूचीबद्ध करें + उपनिर्देशिका
- 7. सी ++ प्रोजेक्ट में सी फाइलों को संकलित करें जो प्रीकंपील्ड हेडर का उपयोग नहीं करते हैं?
- 8. लिनक्स में फोरट्रान 77 फाइलों को कैसे संकलित करें?
- 9. एचटीएमएल फाइलों को सीएचएम फाइल में कैसे संकलित करें?
- 10. कॉफीस्क्रिप्ट - वर्तमान निर्देशिका में सभी .coffee फ़ाइलों को संकलित करें और सभी उप-निर्देशिका
- 11. फाइलों/निर्देशिकाओं की निगरानी सामग्री?
- 12. nginx सभी निर्देशिकाओं को एक
- 13. लिनक्स रिकर्सिवली सूची सिमलिंक निर्देशिकाओं में से फ़ाइलें सहित एक निर्देशिका में सभी फाइलों
- 14. सी प्रोग्रामों में मेमोरी पदचिह्न को कम करना
- 15. कई निर्देशिकाओं में मेकफ़ाइल
- 16. सभी लिनक्स वितरण के लिए संकलित सी ++
- 17. एंड्रॉइड.एमके, सभी सीपीपी फाइलों को शामिल करें
- 18. सी पुस्तकालय को .NET dll में कैसे संकलित करें?
- 19. एकाधिक ओकैम फाइलों को संकलित करना
- 20. पेरेंट निर्देशिकाओं को
- 21. pthreads में openmp संकलित करें सी कोड
- 22. मैवेन एकाधिक स्रोत निर्देशिकाओं के साथ संकलित
- 23. एसबीटी के साथ बस कुछ फाइलों को संकलित कैसे करें?
- 24. cmake अन्य निर्देशिकाओं से एच फाइलों सहित
- 25. ऑनलाइन एफ़टीपी निर्देशिका से सभी फाइलों को एक सूचीदृश्य में सूचीबद्ध करें सी #
- 26. सभी एचटीएमएल फाइलों को पीएनजी
- 27. Git स्वचालित रूप से सभी फाइलों को एक निर्देशिका में
- 28. मैं प्री-बिल्ड में ऑटो-जेनरेट की गई सी फाइलों को कैसे संकलित कर सकता हूं?
- 29. सी में हेडर फाइलों सहित और
- 30. शानदार पाठ 2 - वैश्विक स्तर पर खोजें और प्रतिस्थापित करें (सभी फ़ाइलें और सभी निर्देशिकाओं में)
अनुस्मारक के साथ कि अंतिम अंतर वास्तव में एक टैब है। –
@ मार्टिन शानदार! लेकिन मुझे समझ में नहीं आता कि आप मुख्य लाइन में प्रोग्स और एसआरसीएस क्यों नहीं कहते हैं। –
@ user4050, क्षमा करें, मुझे आपका प्रश्न याद आया। डिफ़ॉल्ट 'सभी' लक्ष्य '$ (PROGS)' बनाता है, और मुख्य पंक्ति कहती है कि विस्तार के बिना फ़ाइलों को कैसे बनाया जाए, जो '% (PROGS) '' .c। फ़ाइलों से हैं, जो ' $ (एसआरसीएस) 'हैं। –