Makefiles में मल्टी लाइन टिप्पणियों को कैसे जोड़ा जाए


113

क्या सी-सिंटैक्स की तरह मेकफाइल्स में कई लाइनों पर टिप्पणी करने का कोई तरीका है /* */?


आप किस संस्करण का उपयोग कर रहे हैं?
egrunin

जवाबों:


152

नहीं, /* */मेकफाइल्स में सी-स्टाइल टिप्पणियों की तरह कुछ भी नहीं है । जैसा कि किसी और ने सुझाव दिया है, आप लाइन निरंतरता का उपयोग करके एक बहु-पंक्ति टिप्पणी कर सकते हैं। उदाहरण के लिए:

# This is the first line of a comment \
and this is still part of the comment \
as is this, since I keep ending each line \
with a backslash character

हालांकि, मुझे लगता है कि आप शायद डिबगिंग कारणों के लिए अस्थायी रूप से अपने मेकफाइल का एक हिस्सा टिप्पणी करने के लिए देख रहे हैं, और हर लाइन पर बैकस्लैश जोड़ना वास्तव में व्यावहारिक नहीं है। यदि आप GNU मेक का उपयोग कर रहे हैं, तो मेरा सुझाव है कि आप ifeqजानबूझकर गलत अभिव्यक्ति के साथ निर्देश का उपयोग करें । उदाहरण के लिए:

ifeq ("x","y")
# here's all your 'commented' makefile content...
endif

उम्मीद है की वो मदद करदे।


3
ध्यान दें, यदि आप किसी नियम में "कमेंट आउट" करना चाहते हैं, तो ifeq, एंडिफ लाइन का इंडेंट न करें।
साइमन मेर्टन

13

मेरा मानना ​​है कि उत्तर नहीं है। केवल एक टिप्पणी जो मुझे मिल सकती है, वह है प्रत्येक पंक्ति के लिए #, या पहली पंक्ति को लपेटने के लिए उपयोग करें।


10

ifeqमेक (1) में मल्टी-लाइन टिप्पणियां करने के लिए उपयोग करने के विचार के बारे में एक नोट । यदि आप निम्नलिखित लिखते हैं तो वे बहुत अच्छी तरह से काम नहीं करते हैं:

ifeq (0,1)
    do not risk ifeq comments
    else trouble will find you
    ifeq is even worse
endif

Ifeq और endif के बीच के पाठ को अभी भी बनाकर पार्स किया जाएगा, जिसका अर्थ है कि आप उस अनुभाग में जो कुछ भी चाहते हैं उसे नहीं लिख सकते। और यदि आप एक लंबी टिप्पणी लिखना चाहते हैं और आप जो चाहें टिप्पणी में लिख सकते हैं ($ संकेत, कॉलन और अधिक जो सभी को बनाने के लिए एक अर्थ है) तो आपको हर एक पंक्ति में टिप्पणी करनी चाहिए। तो क्यों ifeq... :)


यह सही नहीं है। इफीक के अंदर पाठ का केवल "पार्सिंग" गमेक एक एंडिफ़ की तलाश में है। आप इसे आसानी से एक मेकफाइल के साथ सत्यापित कर सकते हैं जिसमें ifeq के अंदर कुछ फर्जी वाक्यविन्यास है। जब तक ifeq में स्थिति झूठी के रूप में मूल्यांकन करती है, gmake खुशी से ifeq के अंदर वाक्यविन्यास त्रुटियों की अनदेखी करेगा।
एरिक मेल्स्की

3
यह सही नहीं है। निम्न उदाहरण का प्रयास करें: ifeq (0, 1) ifeq जोखिम नहीं है किसी और मुसीबत टिप्पणी आप endif मिलेगा बाकी लाइन के शुरू में त्रुटियों में कर फेंकता है। तो बाकी , ifeq , ifneq और संभवतः कई अन्य प्रतीकों है कि मैं के बारे में आप समस्याओं दे देंगे नहीं जानता।
मार्क वेल्टजर

यह एक उचित बिंदु है, लेकिन अधिकांश सिंटैक्टिक त्रुटियों को अनदेखा किया जाएगा।
एरिक मेल्स्की

5
define BOGUS
lines
.....
endef

1
जैसा ifeqमैं सोचता हूं वैसा ही गहनों के अधीन , लेकिन मेरे लिए काम करता है। धन्यवाद!
jcomeau_ictx

3

ठीक वही नहीं जो आप खोज रहे हैं, लेकिन आत्मा में भी ऐसा ही है। मुझे उम्मीद नहीं है कि यह स्वीकृत उत्तर होगा, लेकिन शायद यह किसी की मदद कर सकता है।

मान लें कि आप VIM में अपने मेकफाइल्स का संपादन कर रहे हैं:
या तो यह तय करें कि आप कौन सी पंक्तियों पर टिप्पणी करना चाहते हैं या उन्हें 'v' के साथ चुनें।

तब आप रेगेक्स s/^/#/का उपयोग लाइनों पर टिप्पणी करने
और s/^#//उन्हें वापस करने के लिए कर सकते हैं।

--टिप्पणियाँ--

  • विम कमांड लाइन खोलने के लिए, प्रेस :(कोलन)
  • अगली 'n' लाइनों के लिए कमांड को प्रेप करने के लिए, उपयोग करें .,+n
  • "V" का उपयोग करने वाली एक नमूना रेखा इस प्रकार है: '<,'>s/^/#/

2
इसके बजाय ब्लॉक मोड का उपयोग करना आसान है। टिप्पणी करने के लिए पहली पंक्ति की शुरुआत में जाएं, ctrl-v, अंत तक नीचे तीर, पूंजी I, #, बच। टिप्पणियों को हटाने के लिए: ctrl-v, सभी तरह से नीचे तीर, x
brunch875

1

Emacs में, आप उस क्षेत्र को चिह्नित कर सकते हैं जिस पर आप टिप्पणी करना चाहते हैं और हिट M-;(जो चलता है comment-dwim)।

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