मेक में लाइनें बनाने के लिए उपसर्गों के रूप में @, - और + क्या करते हैं?


172

जीएनयू मेकफाइल मैनुअल में, इन उपसर्गों का उल्लेख है।

यदि .ONESHELL प्रदान किया जाता है, तो केवल विशेष उपसर्ग वर्ण ('@', '-', और '+') के लिए नुस्खा की पहली पंक्ति की जाँच की जाएगी।

ये उपसर्ग क्या करते हैं, और उनका उल्लेख कहाँ है?

जवाबों:


235

वे टैग कमांड लाइन के लिए मेक के व्यवहार को नियंत्रित करते हैं:

  • @ उस कमांड के सामान्य 'इको' को दबा देता है जिसे निष्पादित किया जाता है।

  • - इसका मतलब यह है कि कमांड की निकास स्थिति को अनदेखा करें (सामान्य रूप से, एक गैर-शून्य निकास स्थिति बिल्ड के उस हिस्से को रोक देगा)।

  • +make -nजब कमांड सामान्य रूप से निष्पादित नहीं होते हैं, तो ' इस कमांड को ' (या 'मेक -t' या 'मेक -q') के तहत निष्पादित करें। POSIX विनिर्देश भी देखें makeऔर GNU मेक मैनुअल के IX9.3 के लिए भी ।

+अंकन एक (इसे POSIX-मानकीकृत) का सामान्यीकरण है वास्तविक (गैर मानकीकृत) तंत्र जिससे एक कमांड लाइन से युक्त ${MAKE}या $(MAKE)के तहत निष्पादित किया जाता है make -n

( जीएनयू मेक मैनुअल के is5.2@ में चर्चा की गई है ; ; 5.5 में वर्णित है ; और .75.7.1 के उपयोग का उल्लेख है ।)-+


41

@कंसोल से गूंज से कमांड लाइन को रोकता है। आप इसे विश्व स्तर पर -sया के साथ कर सकते हैं--keep-silent

-बताता है कि चलते रहना है, भले ही कमांड किसी कारण से विफल हो। आप इसे विश्व स्तर पर -iध्वज (या --ignore-errors) के माध्यम से कर सकते हैं ।

+आपके कहने से पहले मैं पारिवारिक नहीं था। पास के रूप में मैं बता सकता हूँ के रूप में, यह के प्रभाव को नकारता -n, -tहै, और -q, जो सभी के मूल रूप से वास्तव में आदेशों को चलाने के लिए नहीं कर बताओ। तो +सामने वाली लाइन वैसे भी चलती थी।

यदि आप आधिकारिक गनु मेक मैनुअल पढ़ते हैं, तो वे सभी अध्याय 5 में उल्लिखित हैं । मैनुअल की मेरी पुरानी कॉपी में जो "कमांड्स" पर अध्याय था, लेकिन टर्म डु पत्रिका अब "रेसिपी" लगती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.