2011-08-31 21 views
25

मेरे पास एक मेकफ़ाइल है जो कई फाइलों से बना एक प्रोजेक्ट बनाता है जिसे सभी को बनाने की आवश्यकता है।त्रुटियों और चेतावनियों को छोड़कर सभी आउटपुट को दबाएं

मामलों को और अधिक जटिल बनाने के लिए, मेरे पास प्रत्येक कॉल में जीसीसी में कई शामिल निर्देशिकाएं हैं (इसलिए प्रत्येक कॉल को जीसीसी को कमांड लाइन पर लंबे समय तक दिखता है)।

मैं त्रुटियों और चेतावनियों को छोड़कर सभी उत्पादन को दबाने के लिए (ताकि मैं वास्तव में उन्हें देख सकते हैं जब मेकअप रन!)

वहाँ यह करने के लिए कोई तरीका है करना चाहते हैं?

+1

@pst आप आदमी हैं! कृपया उत्तर के रूप में पोस्ट करें ताकि मैं स्वीकृत के रूप में चिह्नित कर सकूं। बीटीडब्लू ... क्या आपको पता है कि मेकफ़ाइल से ऐसा कोई तरीका है जिससे कि 'मेक' कमांड सीधे आगे बढ़े? – Steve

उत्तर

10
कैसे "त्रुटियों और चेतावनियों" रिपोर्ट कर रहे हैं पर निर्भर करता है

...

make > /dev/null 

कि अनंत को मेकअप आदेश से सभी STDOUT (मानक आउटपुट) (और इस प्रकार सभी उप-प्रक्रियाओं यह spawns) रीडायरेक्ट करेगा शून्यता की बिट-बाल्टी। हालांकि यह बहुत लालची हो सकता है, क्योंकि कुछ प्रोग्राम चेतावनियों की रिपोर्ट करने के लिए STDOUT (और STDERR नहीं) का उपयोग करते हैं।

मुझे मेकफ़ाइल के संदर्भ में सभी उप-प्रक्रियाओं के वैश्विक स्तर पर STDOUT को बदलने का तरीका नहीं पता है।

हैप्पी कोडिंग।

+0

धन्यवाद !! यही वही है जो मुझे चाहिए था। (जीसीसी के साथ पूरी तरह से काम करता है) – Steve

23

"मेक-एस" करना चाहिए जो आप थोड़ी अधिक अच्छी तरह से कर रहे हैं। मुझे मेकफ़ाइल पर मजबूर करने के तरीके के बारे में पता नहीं है, लेकिन जीएनयू मैनुअल में एक हो सकता है।

विफल होना कि आप लिनक्स कर्नेल बिल्ड सिस्टम की जांच कर सकते हैं, क्योंकि ऐसा लगता है कि यह स्वचालित रूप से stdout को छुपाता है।

आशा है कि मदद करता है, पॉल

+0

उत्कृष्ट, बिल्कुल मुझे जो चाहिए –

19

एक कमांड के सामने करने के लिए एक "@" जोड़कर, कमांड लाइन स्ट्रिंग जैसे दबा दिया जाता है से

$(addprefix $(OUTPUT_PATH)/,$(C_OBJ)): $(OUTPUT_PATH)/%.o: %.c 
     $(CC) -c $(CFLAGS) $< -o [email protected] 

को
$(addprefix $(OUTPUT_PATH)/,$(C_OBJ)): $(OUTPUT_PATH)/%.o: %.c 
     @$(CC) -c $(CFLAGS) $< -o [email protected] 

ले जाएगा

make[1]: Entering directory `.../libraries/libgcdc/build' 
/home/crowe/arm-tools/gcc-arm-none-eabi-4_6-2012q2/bin/arm-none-eabi-gcc -c -Wall -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Werror-implicit-function-declaration -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500 -mcpu=cortex-m3 -mthumb -mlong-calls -ffunction-sections -g -O0 -D DEBUG -I.. -I../include -I../../libchip_sam3s -I../../libboard_arm_demo -I../../libboard_generic -I../../libusb/include -Dsam3s4 -DTRACE_LEVEL=5 -Dprintf=iprintf ../source/hid_callbacks.c -o debug_sam3s_svn2/hid_callbacks.o 
make[1]: Leaving directory ` .../libraries/libgcdc/build' 

को
make[1]: Entering directory `.../libraries/libgcdc/build' 
make[1]: Leaving directory `.../libraries/libgcdc/build' 
12

तुम भी -s विकल्प के रूप में PaulW directl ने सुझाव दिया मजबूर कर सकते हैं मेकफ़ाइल में वाई। बस जोड़ें:

.SILENT: 
संबंधित मुद्दे