2012-08-02 6 views
36

makefile के साथ बिल्ड प्रक्रिया करते समय मैं कुछ संदेश प्रिंट करना चाहता हूं। निम्नलिखित संदेश को प्रिंट कर सकता है, लेकिन इसके बाद स्क्रिप्ट निष्पादित नहीं करेगा। मैं इन मुद्दों को कैसे ठीक कर सकता हूं?मेकफ़ाइल में संदेश कैसे प्रिंट कर सकता हूं?

ifeq (yes, ${TEST}) 
     CXXFLAGS := ${CXXFLAGS} -DDESKTOP_TEST 
test: 
     @echo '************ TEST VERSION ************' 
else 
release: 
     @echo "************ RELEASE VERSIOIN **********" 
endif 
+2

"इसके बाद स्क्रिप्ट"? क्या स्क्रिप्ट? – Beta

+1

@ बीटा का मतलब है कि शायद लाइन के बाद स्क्रिप्ट जारी नहीं है। –

उत्तर

54

यह स्पष्ट नहीं है कि आप क्या चाहते हैं, या विभिन्न लक्ष्यों के साथ काम करने के लिए इस चाल है कि क्या आप चाहते हैं, या आप कहीं और इन लक्ष्यों, या का कौन सा संस्करण परिभाषित किया है कि क्या आप का उपयोग कर रहे, लेकिन क्या बिल्ली बनाओ , मैं एक अंग पर बाहर जाना होगा:

ifeq (yes, ${TEST}) 
CXXFLAGS := ${CXXFLAGS} -DDESKTOP_TEST 
test: 
$(info ************ TEST VERSION ************) 
else 
release: 
$(info ************ RELEASE VERSIOIN **********) 
endif 
+1

धन्यवाद! मैं परीक्षण हटा देता हूं: और रिलीज :, यह काम करता है! – Dan

6

$(info your_text): सूचना। यह निष्पादन को रोकता नहीं है।

$(warning your_text): चेतावनी। यह पाठ को एक चेतावनी के रूप में दिखाता है।

$(error your_text): घातक त्रुटि। यह निष्पादन को रोक देगा।