2009-02-23 11 views
5

मैं जी ++ कंपाइलर आउटपुट (दोनों stderr और stdout) को लिनक्स पर एक फ़ाइल में रीडायरेक्ट कर रहा हूं। लेकिन यह एक खाली फाइल बना रहा है।लिनक्स जी ++ कंपाइलर रीडायरेक्ट stderr और stdout खाली फ़ाइल बनाता है

मैंने कुछ अन्य पोस्ट में पढ़ा है कि प्रत्येक पंक्ति के बाद stdout flushed नहीं है। ठीक है, लेकिन stderr के बारे में क्या। मेरे मामले में संकलन त्रुटियां कई स्क्रीन चल रही हैं। तो, मुझे stderr आउटपुट में दिलचस्पी है। कोई स्टडआउट आउटपुट नहीं बनाया गया है।

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ -I 
~/cplusplus/niVxWorksDeliver/TEES/ Algorithms.cpp 2> output 

उपरोक्त आदेश "आउटपुट" नामक एक खाली फ़ाइल बनाता है। निम्न आदेश अमान्य शून्य कमांड रिपोर्ट करता है।

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ -I  
~/cplusplus/niVxWorksDeliver/TEES/ Algorithms.cpp &> output 
Invalid null command. 
+0

आप किस शैल का उपयोग कर रहे हैं? और जब आप पुनर्निर्देशन नहीं करते हैं तो आउटपुट उत्पन्न होता है? –

+0

मैं एक लिनक्स बॉक्स से कनेक्ट करने के लिए पुटी का उपयोग कर रहा हूं जो बैश खोल का उपयोग करता है पुनर्निर्देशन का मुख्य कारण कई स्क्रीनों पर संकलन त्रुटियों को देखना है। –

उत्तर

11

अपनी टिप्पणी में से एक को धोखा देता है कि आप बैश उपयोग नहीं कर रहे । आप सीएसएच या टीसीएसएच का उपयोग कर रहे हैं। उस मामले में, अगर आप इस तरह (मानक त्रुटि सहित) सभी उत्पादन अनुप्रेषित कर सकते हैं:

 
g++ -c Algorithms.cpp >& output 

अधिक csh पुनर्निर्देशन वाक्य रचना के लिए, मैं a useful link बुकमार्क किए गए है। ध्यान दें कि सीएसएच रीडायरेक्शन सिंटैक्स बैश सिंटैक्स के रूप में धाराप्रवाह नहीं है। आप सीएसएच में कर सकते हैं की तुलना में आप बाश में और अधिक कर सकते हैं।

+0

मुझे आपको गुमराह करने के लिए खेद है। यह केवल मेरी अज्ञानता के कारण था। आपका बहुत बहुत धन्यवाद। –

+1

मैं 'bash' का उपयोग कर रहा हूं और यह वाक्यविन्यास अभी भी जरूरी है। –

0

"कोई समाचार अच्छी खबर नहीं है" - क्या आपका आदेश भी कोई आउटपुट उत्पन्न करता है? जब कोई त्रुटि नहीं होती है, तो g ++ कुछ भी प्रिंट नहीं करेगा!

+0

मैं stderr के बारे में चिंतित हूँ। मुझे पता है कि फ़ाइल का संकलन किसी आउटपुट का उत्पादन नहीं करता है :) –

+0

ओह, आप सही हैं, मुझे याद आया। माफ़ कीजिये! –

3

आप इस कोशिश कर सकते हैं:

श/bash/zsh संस्करण:

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ \ 
     -I ~/cplusplus/niVxWorksDeliver/TEES/ \ 
     Algorithms.cpp > output 2>&1 

csh या tcsh संस्करण:

g++ -c -I ~/cplusplus/boost_1_37_0/boost_1_37_0/ \ 
     -I ~/cplusplus/niVxWorksDeliver/TEES/ \ 
     Algorithms.cpp >& output 
+0

जी ++-सी-आई ~/cplusplus/boost_1_37_0/boost_1_37_0/-I ~/cplusplus/niVxWorksDeliver/TEES/Algorithms.cpp> आउटपुट 2> और 1 संदिग्ध आउटपुट रीडायरेक्ट। –

+0

आपका खोल बैश नहीं है। वह एक सीएसएच त्रुटि संदेश है। –

संबंधित मुद्दे