2012-11-11 12 views
8

अस्थायी फ़ाइलों को सहेजने के लिए - सेव-टेम्पस विकल्प का उपयोग करते समय, gcc/clang इनपुट फ़ाइलों के समान निर्देशिका में अस्थायी फ़ाइल आउटपुट करता है। फाइलों को किसी अन्य निर्देशिका में आउटपुट करने के लिए जीसीसी को निर्देश देने का कोई विकल्प है।किसी विशेष निर्देशिका में अस्थायी फ़ाइलों को आउटपुट करने के लिए जीसीसी/क्लैंग को कैसे निर्देशित करें

या

--save-temps विकल्प अस्थायी फ़ाइलें (जैसे/tmp अर्थात $ TMPDIR) एक डिफ़ॉल्ट निर्देशिका में बनाई गई हैं, लेकिन एक बार वस्तु फ़ाइल बनाई गई है वे नष्ट हो जाती हैं का उपयोग नहीं कर रहे हैं। क्या संकलक को उन फ़ाइलों को हटाने के बजाए उन फ़ाइलों को रखने के लिए निर्देश देने का कोई तरीका है (मुझे लगता है कि एकमात्र विकल्प है - सेव-टेम्पस, जिसमें ऊपर वर्णित समस्या है)

+2

-सेव-temps = cwd –

उत्तर

7

यदि आप -save-temps=obj का उपयोग करते हैं तो अस्थायी फ़ाइलें हैं आउटपुट फाइलों के समान निर्देशिका में डालें, उदाहरण के लिए

gcc -save-temps=obj -o dir/foo.o foo.c 

बनाने dir/foo.i

यह मैनुअल में प्रलेखित है, स्पष्ट रूप से होगा। सभी समर्थित विकल्प https://gcc.gnu.org/onlinedocs/gcc/Option-Summary.html पर सूचीबद्ध हैं और -save-temps के लिए https://gcc.gnu.org/onlinedocs/gcc/Developer-Options.html पर लिंक हैं।

+0

मैं जीसीसी संस्करण 4.3.4 का उपयोग कर रहा हूं। मैंने "= obj" का उपयोग करने की कोशिश की लेकिन यह मेरी त्रुटि "gcc: unrecognized option '-save-temps = obj'" देता है। मैं जिस आदेश को निकालता हूं वह है "gcc -c -w -save-temps = obj -ggdb -m32 test_code.c -o 32_test/test_code.o"। इस त्रुटि से छुटकारा पाने के लिए कोई संकेत? – RKum

+0

@RupeshKumar, जीसीसी 4.5.0 से पहले '-वेव-टेम्पस' विकल्प एक तर्क स्वीकार नहीं करता है, इसलिए या तो '-वेव-टेम्पस' का उपयोग करें और इंटरमीडिएट फ़ाइलें इनपुट फ़ाइलों के समान निर्देशिका में होंगी, या अपने कंपाइलर को अपग्रेड करें (4.3.4 बहुत पुराना है)। उत्तर के लिए –

+0

धन्यवाद जोनाथन। मैं कंपाइलर को अपग्रेड नहीं कर सकता क्योंकि यह चीजों को तोड़ सकता है। मेकफ़ाइल में मैंने इंटरमीडिएट फ़ाइलों को वांछित निर्देशिका में स्थानांतरित करने के लिए एमवी कमांड का उपयोग किया। – RKum

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

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