makepp_buildin - क्लाउड में ऑनलाइन

यह कमांड मेकप्प_बिल्टिन है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


makepp_buildin -- मेकप्प के लिए अंतर्निहित नियम

वर्णन


मेकप यह पता लगाने में सक्षम हो सकता है कि आपके प्रोग्राम को कैसे संकलित और लिंक किया जाए, भले ही आप निर्दिष्ट करें
बिल्कुल भी कोई नियम नहीं है (या यदि आपके पास Makeppfile भी नहीं है)। हर Makeppfile के बाद है
लोड किया गया, मेकप डिफ़ॉल्ट नियमों का एक सेट भी लोड करता है। (ये नियम इस मायने में खास हैं कि वे
Makeppfile में किसी भी अन्य नियम को ओवरराइड न करें।) डिफ़ॉल्ट नियम डेटाबेस संग्रहीत है
मेकप वितरण या लाइब्रेरी निर्देशिका में "makepp_buildin_rules.mk" फ़ाइल में, इसलिए
डिफ़ॉल्ट नियम क्या हैं यह देखने के लिए आप हमेशा उस पर गौर कर सकते हैं।

मेकप के अंतर्निहित नियम लगभग जीएनयू के नियमों के समान ही हैं, सिवाय इसके कि इसमें कोई नियम नहीं है
जीएनयू द्वारा बनाई गई कुछ दुर्लभ भाषाओं के लिए नियम हैं। (यह जानबूझकर किया गया है; मैं
अक्सर कई परियोजनाओं पर जीएनयू के निर्माण में समस्या आती थी, जिनमें से कुछ का गलती से पुन: उपयोग हो जाता था
जीएनयू द्वारा बनाए गए प्रत्यय उन दुर्लभ भाषाओं को सौंपे गए हैं।) नियम उसी का उपयोग करते हैं
जीएनयू जैसे वैरिएबल बनाते हैं, कुछ संभावित उपयोगी परिवर्धन के साथ। मेकप्प जीएनयू से अधिक स्मार्ट है
यह अनुमान लगाना कि किस कंपाइलर का उपयोग करना है, और किन अन्य ऑब्जेक्ट और लाइब्रेरी को लिंक करना है
अंदर

चूक परिवर्तनशील मानों
Makepp कई वेरिएबल्स के लिए डिफ़ॉल्ट मान प्रदान करता है। इनमें से अधिकांश सामान्यतः हैं
नियमों में उपयोग किया जाता है, और वास्तव में डिफ़ॉल्ट नियमों में उपयोग किया जाता है। उनके मूल्यों को खत्म किया जा सकता है
अपने Makeppfile में या कमांड लाइन पर इन वेरिएबल्स को असाइन करके।

इन वेरिएबल्स को makepp_variables में "पूर्वनिर्धारित वेरिएबल्स" में प्रलेखित किया गया है। यदि आपके पास है
किसी भी चर का मूल्यांकन किससे होता है, इसके बारे में कोई प्रश्न हो, तो आप हमेशा इनमें से किसी एक की तरह एक पंक्ति डाल सकते हैं
आपके Makeppfile में इन पंक्तियों में से:

डमी := $(प्रिंट $(CC))
&echo -- $(CC) # पिछले नियम से कम इंडेंट होना चाहिए।

जो Makeppfile लोड होने पर बस "$(CC)" वेरिएबल का मान प्रिंट करता है।
(संयोग से, यह किसी भी अभिव्यक्ति को डीबग करने का एक उपयोगी तरीका है जिसके बारे में आप निश्चित नहीं हैं
सही।)

संकलन नियम
सरलीकृत रूप में, यहां संकलन नियम लगभग इस प्रकार दिखते हैं। अगर आप
किसी भी संकेतित चर के मान को बदलने पर, संकलन आदेश को इस प्रकार बदल दिया जाता है
उम्मीद थी.

#
# C प्रोग्राम के लिए:
#
%.ओ: %.सी
$(CC) $(CFLAGS) $(CPPFLAGS) -c $(इनपुट) -o $(आउटपुट)

#
# C++ प्रोग्राम के लिए:
#
%o: %cxx # और %cc, %cpp, %c++, और %C भी
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $(इनपुट) -o $(आउटपुट)

#
# फोरट्रान कार्यक्रमों के लिए:
#
%।का
$(FC) $(FFLAGS) -c $(इनपुट) -o $(आउटपुट)

#
#याक और लेक्स:
#
%c: %y
$(YACC) $(YFLAGS) $(इनपुट)
&mv -f y.tab.c $(आउटपुट)

%सी: %एल
$(LEX) $(LFLAGS) -t $(इनपुट) -o $(आउटपुट)

यदि आप सटीक विवरण के बारे में उत्सुक हैं, तो आप फ़ाइल में देख सकते हैं
makepp_buildin_rules.mk मेकप वितरण में।

संपर्क नियम
मेकप्प यह भी जानता है कि प्रोग्रामों को कैसे लिंक किया जाए। मेकप उससे भी अधिक चतुर बनने का प्रयास करता है
जब लिंक कमांड का पता लगाने की बात आती है तो मानक यूनिक्स बनाता है। मान लीजिए आप कोशिश कर रहे हैं
लक्ष्य प्रोग्राम "xyz" बनाने के लिए। Makepp इसे "xyz.o" से बनाने का प्रयास करेगा, और
(मानक यूनिक्स निर्माण के विपरीत) यह यह अनुमान लगाने का भी प्रयास करेगा कि क्या कोई अन्य वस्तु या
पुस्तकालयों को जोड़ने की आवश्यकता है।

लिंक नियम कुछ इस तरह दिखता है:

xyz: $(infer_objects xyz.o, *.o)
$(infer_linker $(इनपुट)) $(इनपुट) $(LDFLAGS) $(LDLIBS) $(LIBS) -o $(आउटपुट)

"$(infer_objects)" यह अनुमान लगाने का प्रयास करता है कि अन्य ".o" फ़ाइलों को किस आधार पर लिंक करने की आवश्यकता है
कौन सी ".h" फ़ाइलें शामिल हैं।

"अनुमानित लिंकर" जादू का एक विशेष टुकड़ा है जो सभी स्रोतों को "$(CC)" में बदल देता है
C कोड हैं, "$(CXX)" यदि कोई स्रोत C++ है, या "$(F77)" यदि कोई स्रोत C++ है
फोरट्रान।

मोड़ बंद la में निर्मित नियम
यदि आपको अंतर्निहित नियम पसंद नहीं हैं, तो उनका उपयोग न करें। यदि वे आपके लिए काम नहीं करते हैं, तो आपका
निर्मित संभवतः इतना जटिल है कि आपको अपनी स्वयं की कस्टम Makeppfile की आवश्यकता है
वैसे भी.

अंतर्निहित नियमों को बंद करने के लिए, आप अपने Makeppfile में इस तरह की एक पंक्ति जोड़ सकते हैं:

मेकप्प_नो_बिल्टिन = 1

यदि आप उनका उपयोग करते हैं, लेकिन काफी महंगे बिल्ट-इन लिंकर नियमों का नहीं, तो आप उन्हें बदल सकते हैं
समय बाद:

मेकप्प_नो_बिल्टइन_लिंकर = 1

पश्चगामी संगतता के लिए, यदि आप इसे शामिल करते हैं तो मेकप अपने डिफ़ॉल्ट नियमों को भी बंद कर देता है
आपके Makeppfile में कहीं पंक्ति:

प्रत्यय:

आप निर्दिष्ट करके संपूर्ण बिल्ड में प्रत्येक Makeppfile के लिए अंतर्निहित नियमों को बंद कर सकते हैं
कमांड लाइन पर "--नो-बिल्टिन-रूल्स" विकल्प।

onworks.net सेवाओं का उपयोग करके ऑनलाइन makepp_buildin का उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम